Runs on mainnet, accepts messages from schain, stores deposits of ERC721.
initializeAllTokensForSchain(string schainName, address tokens) external
Allows DEFAULT_ADMIN_ROLE to initialize token mapping Notice - this function will be executed only once during upgrade
msg.sender should has DEFAULT_ADMIN_ROLE
depositERC721(string schainName, address erc721OnMainnet, uint256 tokenId) external
msg.sender to send ERC721 token from mainnet to schain.
Receiver contract should be defined.
msg.sendershould approve their token for DepositBoxERC721 address.
postMessage(bytes32 schainHash, address sender, bytes data) → address external
Allows MessageProxyForMainnet contract to execute transferring ERC721 token from schain to mainnet.
Schain from which the tokens came should not be killed.
Sender contract should be defined and schain name cannot be
DepositBoxERC721 contract should own token.
addERC721TokenByOwner(string schainName, address erc721OnMainnet) external
Allows Schain owner to add an ERC721 token to DepositBoxERC721.
Schain should not be killed.
Only owner of the schain able to run function.
getFunds(string schainName, address erc721OnMainnet, address receiver, uint256 tokenId) external
Allows Schain owner to return each user their tokens. The Schain owner decides which tokens to send to which address, since the contract on mainnet does not store information about which tokens belong to whom.
DepositBoxERC721 contract should own such token.
msg.sender should be an owner of schain
IMA transfers Mainnet <→ schain should be killed
gasPayer(bytes32 schainHash, address sender, bytes data) → address external
getSchainToERC721(string schainName, address erc721OnMainnet) → bool external
Should return true if token was added by Schain owner or automatically added after sending to schain if whitelist was turned off.
getSchainToAllERC721Length(string schainName) → uint256 external
Should return length of a set of all mapped tokens which were added by Schain owner or added automatically after sending to schain if whitelist was turned off.
getSchainToAllERC721(string schainName, uint256 from, uint256 to) → address tokensInRange external
Should return an array of range of tokens were added by Schain owner or added automatically after sending to schain if whitelist was turned off.
initialize(contract IContractManager contractManagerOfSkaleManagerValue, contract ILinker linkerValue, contract IMessageProxyForMainnet messageProxyValue) public
Creates a new DepositBoxERC721 contract.
ERC721TokenAdded(string schainName, address contractOnMainnet) event
Emitted when token is mapped in DepositBoxERC721.
ERC721TokenReady(address contractOnMainnet, uint256 tokenId) event
Emitted when token is received by DepositBox and is ready to be cloned or transferred on SKALE chain.