diff options
Diffstat (limited to 'test/compilationTests/MultiSigWallet/TestToken.sol')
-rw-r--r-- | test/compilationTests/MultiSigWallet/TestToken.sol | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/test/compilationTests/MultiSigWallet/TestToken.sol b/test/compilationTests/MultiSigWallet/TestToken.sol new file mode 100644 index 00000000..0f6cd20e --- /dev/null +++ b/test/compilationTests/MultiSigWallet/TestToken.sol @@ -0,0 +1,76 @@ +pragma solidity ^0.4.4; + + +/// @title Test token contract - Allows testing of token transfers with multisig wallet. +contract TestToken { + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); + + mapping (address => uint256) balances; + mapping (address => mapping (address => uint256)) allowed; + uint256 public totalSupply; + + string constant public name = "Test Token"; + string constant public symbol = "TT"; + uint8 constant public decimals = 1; + + function issueTokens(address _to, uint256 _value) + public + { + balances[_to] += _value; + totalSupply += _value; + } + + function transfer(address _to, uint256 _value) + public + returns (bool success) + { + if (balances[msg.sender] < _value) { + throw; + } + balances[msg.sender] -= _value; + balances[_to] += _value; + Transfer(msg.sender, _to, _value); + return true; + } + + function transferFrom(address _from, address _to, uint256 _value) + public + returns (bool success) + { + if (balances[_from] < _value || allowed[_from][msg.sender] < _value) { + throw; + } + balances[_to] += _value; + balances[_from] -= _value; + allowed[_from][msg.sender] -= _value; + Transfer(_from, _to, _value); + return true; + } + + function approve(address _spender, uint256 _value) + public + returns (bool success) + { + allowed[msg.sender][_spender] = _value; + Approval(msg.sender, _spender, _value); + return true; + } + + function allowance(address _owner, address _spender) + constant + public + returns (uint256 remaining) + { + return allowed[_owner][_spender]; + } + + function balanceOf(address _owner) + constant + public + returns (uint256 balance) + { + return balances[_owner]; + } +} |