aboutsummaryrefslogtreecommitdiffstats
path: root/packages/metacoin/contracts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/metacoin/contracts')
-rw-r--r--packages/metacoin/contracts/Metacoin.sol25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/metacoin/contracts/Metacoin.sol b/packages/metacoin/contracts/Metacoin.sol
new file mode 100644
index 000000000..6b6814b21
--- /dev/null
+++ b/packages/metacoin/contracts/Metacoin.sol
@@ -0,0 +1,25 @@
+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;
+ }
+
+ 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;
+ }
+}