diff options
Diffstat (limited to 'examples/multicoin/mc_test.sol')
-rw-r--r-- | examples/multicoin/mc_test.sol | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/examples/multicoin/mc_test.sol b/examples/multicoin/mc_test.sol new file mode 100644 index 0000000..ec07ee6 --- /dev/null +++ b/examples/multicoin/mc_test.sol @@ -0,0 +1,27 @@ +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.call(abi.encodeWithSignature("enableMultiCoin()")); + require(success); + } + + function updateBalance(uint256 coinid) public { + (bool success, bytes memory data) = MultiCoin.call(abi.encodeWithSignature("getBalance(uint256)", coinid)); + require(success); + balance = abi.decode(data, (uint256)); + } + + function withdraw(uint256 amount, uint256 coinid, uint256 amount2) public { + (bool success,) = MultiCoin.call( + abi.encodeWithSignature("transfer(address,uint256,uint256,uint256)", + msg.sender, amount, coinid, amount2)); + + require(success); + } + + receive() external payable {} +} |