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) external
Allows MessageProxyForMainnet contract to execute transferring ERC20 token from schain to mainnet.
Requirements:
-
Schain from which the eth came should not be killed.
-
Sender contract should be defined and schain name cannot be
Mainnet. -
Amount of eth on DepositBoxEth should be equal or more than transferred amount.
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.
-
msg.sender should be an owner of schain
-
IMA transfers Mainnet <→ schain should be killed
enableActiveEthTransfers enableActiveEthTransfers(string schainName) external
Allows Schain owner to switch on or switch off active eth transfers.
Requirements:
-
msg.sender should be an owner of schain
-
IMA transfers Mainnet <→ schain should be killed
disableActiveEthTransfers disableActiveEthTransfers(string schainName) external
Allows Schain owner to switch on or switch off active eth transfers.
Requirements:
-
msg.sender should be an owner of schain
-
IMA transfers Mainnet <→ schain should be killed
gasPayer gasPayer(bytes32 schainHash, address sender, bytes data) → address external
Returns receiver of message.
Requirements:
-
Sender contract should be defined and schain name cannot be
Mainnet.
initialize initialize(contract IContractManager contractManagerOfSkaleManagerValue, contract ILinker linkerValue, contract IMessageProxyForMainnet messageProxyValue) public
Creates a new DepositBoxEth contract.
depositDirect depositDirect(string schainName, address receiver) public
Allows msg.sender to send ETH from mainnet to schain to specified receiver.
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.