aboutsummaryrefslogblamecommitdiff
path: root/examples/multicoin/mc_test.sol
blob: a7d468e3f423c54f4aa9c47d8561000aa262d9b8 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11



                                                                            
                    





                                                                                               
                                                   

                                                                                                                           
                                              



                                        
pragma solidity >=0.6.0;

contract MCTest {
    address constant MultiCoin = 0x0100000000000000000000000000000000000000;
    uint256 balance;
    constructor() public {
        // enable multi-coin functionality (it is disabled by default)
        (bool success,) = MultiCoin.delegatecall(abi.encodeWithSignature("enableMultiCoin()"));
        require(success);
    }

    function updateBalance(uint256 coinid) public {
        (bool success, bytes memory data) = MultiCoin.delegatecall(abi.encodeWithSignature("getBalance(uint256)", coinid));
        require(success);
        balance = abi.decode(data, (uint256));
    }

    function deposit() public payable {}
}