diff options
author | Fabio Berger <me@fabioberger.com> | 2018-01-19 23:13:31 +0800 |
---|---|---|
committer | Amir Bandeali <abandeali1@gmail.com> | 2018-02-03 01:39:08 +0800 |
commit | 2721252d6a82e83801c650ebad6a2cb4d7195bc1 (patch) | |
tree | c22be8b830f57e8984be92d6936f5fefc9c44c2d /packages/contracts/contracts_old | |
parent | 47d74aa24ac06de33ae331f3589e9c8013c655ec (diff) | |
download | dexon-0x-contracts-2721252d6a82e83801c650ebad6a2cb4d7195bc1.tar.gz dexon-0x-contracts-2721252d6a82e83801c650ebad6a2cb4d7195bc1.tar.zst dexon-0x-contracts-2721252d6a82e83801c650ebad6a2cb4d7195bc1.zip |
Get rid of suffixed contract versioning and replace it with a poor-mans package manager. Versions are stored locally, and are generated in a copy-on-write basis as required
Diffstat (limited to 'packages/contracts/contracts_old')
-rw-r--r-- | packages/contracts/contracts_old/Ownable/v1.sol | 27 | ||||
-rw-r--r-- | packages/contracts/contracts_old/SafeMath/v1.sol | 73 | ||||
-rw-r--r-- | packages/contracts/contracts_old/Token/v1.sol | 39 | ||||
-rw-r--r-- | packages/contracts/contracts_old/UnlimitedAllowanceToken/v1.sol | 52 |
4 files changed, 191 insertions, 0 deletions
diff --git a/packages/contracts/contracts_old/Ownable/v1.sol b/packages/contracts/contracts_old/Ownable/v1.sol new file mode 100644 index 000000000..5488896d7 --- /dev/null +++ b/packages/contracts/contracts_old/Ownable/v1.sol @@ -0,0 +1,27 @@ +pragma solidity ^0.4.11; + +/* + * Ownable + * + * Base contract with an owner. + * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner. + */ + +contract Ownable { + address public owner; + + function Ownable() { + owner = msg.sender; + } + + modifier onlyOwner() { + require(msg.sender == owner); + _; + } + + function transferOwnership(address newOwner) onlyOwner { + if (newOwner != address(0)) { + owner = newOwner; + } + } +} diff --git a/packages/contracts/contracts_old/SafeMath/v1.sol b/packages/contracts/contracts_old/SafeMath/v1.sol new file mode 100644 index 000000000..e35c0dc81 --- /dev/null +++ b/packages/contracts/contracts_old/SafeMath/v1.sol @@ -0,0 +1,73 @@ +pragma solidity ^0.4.11; + +contract SafeMath { + function safeMul(uint a, uint b) + internal + constant + returns (uint256) + { + uint c = a * b; + assert(a == 0 || c / a == b); + return c; + } + + function safeDiv(uint a, uint b) + internal + constant + returns (uint256) + { + uint c = a / b; + return c; + } + + function safeSub(uint a, uint b) + internal + constant + returns (uint256) + { + assert(b <= a); + return a - b; + } + + function safeAdd(uint a, uint b) + internal + constant + returns (uint256) + { + uint c = a + b; + assert(c >= a); + return c; + } + + function max64(uint64 a, uint64 b) + internal + constant + returns (uint64) + { + return a >= b ? a : b; + } + + function min64(uint64 a, uint64 b) + internal + constant + returns (uint64) + { + return a < b ? a : b; + } + + function max256(uint256 a, uint256 b) + internal + constant + returns (uint256) + { + return a >= b ? a : b; + } + + function min256(uint256 a, uint256 b) + internal + constant + returns (uint256) + { + return a < b ? a : b; + } +} diff --git a/packages/contracts/contracts_old/Token/v1.sol b/packages/contracts/contracts_old/Token/v1.sol new file mode 100644 index 000000000..507de9b12 --- /dev/null +++ b/packages/contracts/contracts_old/Token/v1.sol @@ -0,0 +1,39 @@ +pragma solidity ^0.4.11; + +contract Token { + + /// @return total amount of tokens + function totalSupply() constant returns (uint supply) {} + + /// @param _owner The address from which the balance will be retrieved + /// @return The balance + function balanceOf(address _owner) constant returns (uint balance) {} + + /// @notice send `_value` token to `_to` from `msg.sender` + /// @param _to The address of the recipient + /// @param _value The amount of token to be transferred + /// @return Whether the transfer was successful or not + function transfer(address _to, uint _value) returns (bool success) {} + + /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` + /// @param _from The address of the sender + /// @param _to The address of the recipient + /// @param _value The amount of token to be transferred + /// @return Whether the transfer was successful or not + function transferFrom(address _from, address _to, uint _value) returns (bool success) {} + + /// @notice `msg.sender` approves `_addr` to spend `_value` tokens + /// @param _spender The address of the account able to transfer the tokens + /// @param _value The amount of wei to be approved for transfer + /// @return Whether the approval was successful or not + function approve(address _spender, uint _value) returns (bool success) {} + + /// @param _owner The address of the account owning tokens + /// @param _spender The address of the account able to transfer the tokens + /// @return Amount of remaining tokens allowed to spent + function allowance(address _owner, address _spender) constant returns (uint remaining) {} + + event Transfer(address indexed _from, address indexed _to, uint _value); + event Approval(address indexed _owner, address indexed _spender, uint _value); +} + diff --git a/packages/contracts/contracts_old/UnlimitedAllowanceToken/v1.sol b/packages/contracts/contracts_old/UnlimitedAllowanceToken/v1.sol new file mode 100644 index 000000000..b7c285f06 --- /dev/null +++ b/packages/contracts/contracts_old/UnlimitedAllowanceToken/v1.sol @@ -0,0 +1,52 @@ +/* + + Copyright 2017 ZeroEx Intl. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +pragma solidity ^0.4.11; + +import "../../packages/StandardToken/StandardToken.sol"; + +contract UnlimitedAllowanceToken is StandardToken { + + uint constant MAX_UINT = 2**256 - 1; + + /// @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance. + /// @param _from Address to transfer from. + /// @param _to Address to transfer to. + /// @param _value Amount to transfer. + /// @return Success of transfer. + function transferFrom(address _from, address _to, uint _value) + public + returns (bool) + { + uint allowance = allowed[_from][msg.sender]; + if (balances[_from] >= _value + && allowance >= _value + && balances[_to] + _value >= balances[_to] + ) { + balances[_to] += _value; + balances[_from] -= _value; + if (allowance < MAX_UINT) { + allowed[_from][msg.sender] -= _value; + } + Transfer(_from, _to, _value); + return true; + } else { + return false; + } + } +} |