DepositBoxEth
Runs on mainnet, accepts messages from schain, stores deposits of ETH.
receive receive()
external
deposit deposit(string schainName)
external
Allows msg.sender
to send ETH from mainnet to schain.
Requirements:
-
Schain name must not be
Mainnet
. -
Receiver contract should be added as twin contract on schain.
-
Schain that receives tokens should not be killed.
postMessage postMessage(bytes32 schainHash, address sender, bytes data) → address
external
Allows MessageProxyForMainnet contract to execute transferring ERC20 token from schain to mainnet.
Requirements:
-
Schain from which the tokens came should not be killed.
-
Sender contract should be defined and schain name cannot be
Mainnet
. -
Amount of tokens on DepositBoxERC20 should be equal or more than transferred amount.
gasPayer gasPayer(bytes32 schainHash, address sender, bytes data) → address
external
getMyEth getMyEth()
external
Transfers a user’s ETH.
Requirements:
-
DepositBoxETh must have sufficient ETH.
-
User must be approved for ETH transfer.
getFunds getFunds(string schainName, address payable receiver, uint256 amount)
external
Allows Schain owner to return each user their ETH.
Requirements:
-
Amount of ETH on schain should be equal or more than transferred amount.
-
Receiver address must not be null.
initialize initialize(contract IContractManager contractManagerOfSkaleManagerValue, contract Linker linkerValue, contract MessageProxyForMainnet messageProxyValue)
public
Creates a new DepositBoxEth contract.