diff options
Diffstat (limited to 'test/compilationTests/gnosis/Tokens/EtherToken.sol')
-rw-r--r-- | test/compilationTests/gnosis/Tokens/EtherToken.sol | 47 |
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); + } +} |