blob: ac212b32e71ee014c44800077e7b49576683218b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
pragma solidity ^0.4.21;
pragma experimental ABIEncoderV2;
contract Metacoin {
mapping (address => uint) public balances;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
struct TransferData {
address to;
uint256 amount;
}
struct NestedTransferData {
TransferData transferData;
uint32 callback;
}
function Metacoin() public {
balances[msg.sender] = 10000;
}
function transfer(TransferData transferData) public returns (bool success) {
if (balances[msg.sender] < transferData.amount) return false;
balances[msg.sender] -= transferData.amount;
balances[transferData.to] += transferData.amount;
Transfer(msg.sender, transferData.to, transferData.amount);
return true;
}
function transfer(TransferData transferData, uint32 callback) public returns (int) {
transfer(transferData);
return callback;
}
function transfer(NestedTransferData nestedTransferData) public returns (int) {
return transfer(nestedTransferData.transferData, nestedTransferData.callback);
}
}
|