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.