28 lines
963 B
Solidity
28 lines
963 B
Solidity
pragma solidity >=0.8.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 {}
|
|
}
|