mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-25 14:07:58 +00:00
82 lines
2.1 KiB
Solidity
82 lines
2.1 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8;
|
|
|
|
/* runner.json
|
|
{
|
|
"differential": true,
|
|
"actions": [
|
|
{
|
|
"Upload": {
|
|
"code": {
|
|
"Solidity": {
|
|
"contract": "BalanceReceiver"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Instantiate": {
|
|
"code": {
|
|
"Solidity": {
|
|
"contract": "Balance"
|
|
}
|
|
},
|
|
"value": 24
|
|
}
|
|
},
|
|
{
|
|
"Call": {
|
|
"dest": {
|
|
"Instantiated": 0
|
|
},
|
|
"data": "1c8d16b30000000000000000000000000303030303030303030303030303030303030303000000000000000000000000000000000000000000000000000000000000000a"
|
|
}
|
|
},
|
|
{
|
|
"Call": {
|
|
"dest": {
|
|
"Instantiated": 0
|
|
},
|
|
"data": "6ada15d90000000000000000000000000303030303030303030303030303030303030303000000000000000000000000000000000000000000000000000000000000000a"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
*/
|
|
|
|
contract BalanceReceiver {
|
|
constructor() payable {}
|
|
|
|
fallback() external payable {}
|
|
}
|
|
|
|
contract Balance {
|
|
constructor() payable {
|
|
// 0 to EOA
|
|
transfer_to(payable(address(0xdeadbeef)), 0);
|
|
send_to(payable(address(0xdeadbeef)), 0);
|
|
|
|
// 1 to EOA
|
|
transfer_to(payable(address(0xcafebabe)), 1);
|
|
send_to(payable(address(0xcafebabe)), 1);
|
|
|
|
BalanceReceiver balanceReceiver = new BalanceReceiver();
|
|
|
|
// 0 to contract
|
|
transfer_to(payable(address(balanceReceiver)), 0);
|
|
send_to(payable(address(balanceReceiver)), 0);
|
|
|
|
// 1 to contract
|
|
transfer_to(payable(address(balanceReceiver)), 1);
|
|
send_to(payable(address(balanceReceiver)), 1);
|
|
}
|
|
|
|
function transfer_to(address payable _dest, uint _amount) public payable {
|
|
_dest.transfer(_amount);
|
|
}
|
|
|
|
function send_to(address payable _dest, uint _amount) public payable {
|
|
require(_dest.send(_amount));
|
|
}
|
|
}
|