aboutsummaryrefslogtreecommitdiffstats
path: root/test/compilationTests/gnosis/Tokens/EtherToken.sol
diff options
context:
space:
mode:
Diffstat (limited to 'test/compilationTests/gnosis/Tokens/EtherToken.sol')
-rw-r--r--test/compilationTests/gnosis/Tokens/EtherToken.sol47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/compilationTests/gnosis/Tokens/EtherToken.sol b/test/compilationTests/gnosis/Tokens/EtherToken.sol
new file mode 100644
index 00000000..f6e73e5a
--- /dev/null
+++ b/test/compilationTests/gnosis/Tokens/EtherToken.sol
@@ -0,0 +1,47 @@
+pragma solidity ^0.4.11;
+import "../Tokens/StandardToken.sol";
+
+
+/// @title Token contract - Token exchanging Ether 1:1
+/// @author Stefan George - <stefan@gnosis.pm>
+contract EtherToken is StandardToken {
+ using Math for *;
+
+ /*
+ * Events
+ */
+ event Deposit(address indexed sender, uint value);
+ event Withdrawal(address indexed receiver, uint value);
+
+ /*
+ * Constants
+ */
+ string public constant name = "Ether Token";
+ string public constant symbol = "ETH";
+ uint8 public constant decimals = 18;
+
+ /*
+ * Public functions
+ */
+ /// @dev Buys tokens with Ether, exchanging them 1:1
+ function deposit()
+ public
+ payable
+ {
+ balances[msg.sender] = balances[msg.sender].add(msg.value);
+ totalTokens = totalTokens.add(msg.value);
+ Deposit(msg.sender, msg.value);
+ }
+
+ /// @dev Sells tokens in exchange for Ether, exchanging them 1:1
+ /// @param value Number of tokens to sell
+ function withdraw(uint value)
+ public
+ {
+ // Balance covers value
+ balances[msg.sender] = balances[msg.sender].sub(value);
+ totalTokens = totalTokens.sub(value);
+ msg.sender.transfer(value);
+ Withdrawal(msg.sender, value);
+ }
+}