Warning

from_handler and to_handler must verify whether they are authorized addresses.

Handler Contract Needs to Verify Whether the Call is from the Settlement Contract

The receive_cross_chain_callback and receive_cross_chain_msg methods should verify if msg.sender is the settlement address set during contract deployment.

Interface Handler Validation

Only the owner can call add_handler and remove_handler.

interface ISettlementHandler {
		is_valid_handler(string chain_name, uint256 handler) bool;
		add_handler(string chain_name, uint256 handler);
		remove_handler(string chain_name, uint256 handler);
}

Next Version Upgrade: The contract callback will add a resp field to address developers' needs for custom return data in messages.

Message

PayloadType

enum PayloadType {
    Raw,
    BTCDeposit,
    BTCWithdraw,
    BTCStake,
    BTCUnstake,
    ERC20,
    ERC721
}

Event

BTC Deposit Event and Call Flow

Untitled