From 862367cbdcc482af41db5f2ea20713171557b6bc Mon Sep 17 00:00:00 2001 From: BokkyPooBah Date: Wed, 15 Nov 2017 20:40:22 +1100 Subject: [PATCH] Reviewed and retested with new changes --- audit/README.md | 12 +- audit/code-review/PresaleOracles_flat.md | 91 +++++++------- audit/test/01_test1.sh | 15 ++- audit/test/PresaleOracles_flat.js | 2 +- audit/test/PresaleOracles_flat.sol | 67 +++++----- audit/test/functions.js | 139 +++------------------ audit/test/test1output.txt | 152 ++++++++++++----------- audit/test/test1results.txt | 138 ++++++++++---------- 8 files changed, 264 insertions(+), 352 deletions(-) diff --git a/audit/README.md b/audit/README.md index d6e3e53..7f203bc 100644 --- a/audit/README.md +++ b/audit/README.md @@ -6,8 +6,9 @@ Bok Consulting Pty Ltd was commissioned to perform an audit on the Oracles Network's presale Ethereum smart contract. -This audit has been conducted on Oracles Network's source code in commit -[5bc4391](https://github.com/oraclesorg/oracles-presale/commit/5bc439115ecebb0a52cfe9305f00f89756c5a90a). +This audit has been conducted on Oracles Network's source code in commits +[5bc4391](https://github.com/oraclesorg/oracles-presale/commit/5bc439115ecebb0a52cfe9305f00f89756c5a90a) and +[565e090](https://github.com/oraclesorg/oracles-presale/commit/565e090b0a2a37f36aedf3c5585cb03f2cfb4b33). No potential vulnerabilities have been identified in the presale contract. @@ -50,14 +51,15 @@ No tokens are generated for these contributions. * **LOW IMPORTANCE** Use the OpenZeppelin *Claimable* contract instead of the *Ownable* contract to provide more safety during the ownership transfer process - + * [x] Updated in [565e090](https://github.com/oraclesorg/oracles-presale/commit/565e090b0a2a37f36aedf3c5585cb03f2cfb4b33) * **LOW IMPORTANCE** The variable `PresaleOracles.rate` is unused and can be removed - + * [x] Updated in [565e090](https://github.com/oraclesorg/oracles-presale/commit/565e090b0a2a37f36aedf3c5585cb03f2cfb4b33) * **LOW IMPORTANCE** Consider adding the logging of an event for each contribution, like `Contribution(address investor, uint investorAmount, uint investorTotal, uint totalAmount)`. This data can then be easily extracted using a script, if there are many individual contributions - + * [x] Updated in [565e090](https://github.com/oraclesorg/oracles-presale/commit/565e090b0a2a37f36aedf3c5585cb03f2cfb4b33) * **LOW IMPORTANCE** `BasicToken` can be replaced with the `ERC20Basic` interface in `PresaleOracles.claimTokens(...)`, and the `BasicToken` contract source code can be removed + * [x] Updated in [565e090](https://github.com/oraclesorg/oracles-presale/commit/565e090b0a2a37f36aedf3c5585cb03f2cfb4b33)
diff --git a/audit/code-review/PresaleOracles_flat.md b/audit/code-review/PresaleOracles_flat.md index a2a4e89..b26199c 100644 --- a/audit/code-review/PresaleOracles_flat.md +++ b/audit/code-review/PresaleOracles_flat.md @@ -100,6 +100,46 @@ contract Ownable { } +// BK Ok +contract Claimable is Ownable { + // BK Ok + address public pendingOwner; + + /** + * @dev Modifier throws if called by any account other than the pendingOwner. + */ + // BK Ok + modifier onlyPendingOwner() { + // BK Ok + require(msg.sender == pendingOwner); + // BK Ok + _; + } + + /** + * @dev Allows the current owner to set the pendingOwner address. + * @param newOwner The address to transfer ownership to. + */ + // BK Ok - Only owner can execute + function transferOwnership(address newOwner) onlyOwner public { + // BK Ok + pendingOwner = newOwner; + } + + /** + * @dev Allows the pendingOwner address to finalize the transfer. + */ + // BK Ok - Only pending owner can execute + function claimOwnership() onlyPendingOwner public { + // BK Ok - Log event + OwnershipTransferred(owner, pendingOwner); + // BK Ok + owner = pendingOwner; + // BK Ok + pendingOwner = 0x0; + } +} + // BK Ok contract ERC20Basic { // BK Ok @@ -113,49 +153,7 @@ contract ERC20Basic { } // BK Ok -contract BasicToken is ERC20Basic { - // BK Ok - using SafeMath for uint256; - - // BK Ok - mapping(address => uint256) balances; - - /** - * @dev transfer token for a specified address - * @param _to The address to transfer to. - * @param _value The amount to be transferred. - */ - // BK Ok - function transfer(address _to, uint256 _value) public returns (bool) { - // BK Ok - require(_to != address(0)); - - // SafeMath.sub will throw if there is not enough balance. - // BK Ok - balances[msg.sender] = balances[msg.sender].sub(_value); - // BK Ok - balances[_to] = balances[_to].add(_value); - // BK Ok - Log event - Transfer(msg.sender, _to, _value); - // BK Ok - return true; - } - - /** - * @dev Gets the balance of the specified address. - * @param _owner The address to query the the balance of. - * @return An uint256 representing the amount owned by the passed address. - */ - // BK Ok - Constant function - function balanceOf(address _owner) public constant returns (uint256 balance) { - // BK Ok - return balances[_owner]; - } - -} - -// BK Ok -contract PresaleOracles is Ownable { +contract PresaleOracles is Claimable { /* * PresaleOracles * Simple Presale contract @@ -167,7 +165,6 @@ contract PresaleOracles is Ownable { uint256 public startTime; uint256 public endTime; uint256 public cap; - uint256 public rate; uint256 public totalInvestedInWei; uint256 public minimumContribution; // BK Next 2 Ok @@ -211,6 +208,7 @@ contract PresaleOracles is Ownable { vault = _vault; } //TESTED by Roman Storm + event Contribution(address indexed investor, uint256 investorAmount, uint256 investorTotal, uint256 totalAmount); // BK Ok - Payable function buy() public payable { // BK Ok @@ -229,6 +227,8 @@ contract PresaleOracles is Ownable { totalInvestedInWei += msg.value; // BK Ok forwardFunds(msg.value); + // BK Ok + Contribution(msg.sender, msg.value, investorBalances[investor], totalInvestedInWei); } //TESTED by Roman Storm @@ -249,7 +249,7 @@ contract PresaleOracles is Ownable { } // BK Ok - BasicToken token = BasicToken(_token); + ERC20Basic token = ERC20Basic(_token); // BK Ok uint256 balance = token.balanceOf(this); // BK Ok @@ -317,5 +317,4 @@ contract PresaleOracles is Ownable { } } - ``` diff --git a/audit/test/01_test1.sh b/audit/test/01_test1.sh index c7ec90c..98067dc 100755 --- a/audit/test/01_test1.sh +++ b/audit/test/01_test1.sh @@ -172,16 +172,17 @@ console.log("RESULT: "); var sendContribution1Message = "Send Contribution"; // ----------------------------------------------------------------------------- console.log("RESULT: " + sendContribution1Message); -var sendContribution1_1Tx = eth.sendTransaction({from: account3, to: saleAddress, gas: 400000, value: web3.toWei("1000", "ether")}); +var sendContribution1_1Tx = eth.sendTransaction({from: account3, to: saleAddress, gas: 400000, value: web3.toWei("999", "ether")}); var sendContribution1_2Tx = eth.sendTransaction({from: account4, to: saleAddress, gas: 400000, value: web3.toWei("1000", "ether")}); var sendContribution1_3Tx = eth.sendTransaction({from: account5, to: saleAddress, gas: 400000, value: web3.toWei("1000", "ether")}); var sendContribution1_4Tx = eth.sendTransaction({from: account6, to: saleAddress, gas: 400000, value: web3.toWei("1000", "ether")}); while (txpool.status.pending > 0) { } -var sendContribution1_5Tx = eth.sendTransaction({from: account7, to: saleAddress, gas: 400000, value: web3.toWei("8000.00000000001", "ether")}); +var sendContribution1_5Tx = eth.sendTransaction({from: account3, to: saleAddress, gas: 400000, value: web3.toWei("1", "ether")}); +var sendContribution1_6Tx = eth.sendTransaction({from: account7, to: saleAddress, gas: 400000, value: web3.toWei("8001.00000000001", "ether")}); while (txpool.status.pending > 0) { } -var sendContribution1_6Tx = eth.sendTransaction({from: account7, to: saleAddress, gas: 400000, value: web3.toWei("7999", "ether")}); +var sendContribution1_7Tx = eth.sendTransaction({from: account7, to: saleAddress, gas: 400000, value: web3.toWei("7999", "ether")}); while (txpool.status.pending > 0) { } printTxData("sendContribution1_1Tx", sendContribution1_1Tx); @@ -190,13 +191,15 @@ printTxData("sendContribution1_3Tx", sendContribution1_3Tx); printTxData("sendContribution1_4Tx", sendContribution1_4Tx); printTxData("sendContribution1_5Tx", sendContribution1_5Tx); printTxData("sendContribution1_6Tx", sendContribution1_6Tx); +printTxData("sendContribution1_7Tx", sendContribution1_7Tx); printBalances(); -failIfTxStatusError(sendContribution1_1Tx, sendContribution1Message + " ac3 1000 ETH"); +failIfTxStatusError(sendContribution1_1Tx, sendContribution1Message + " ac3 999 ETH"); passIfTxStatusError(sendContribution1_2Tx, sendContribution1Message + " ac4 1000 ETH - Expecting failure, not whitelisted"); failIfTxStatusError(sendContribution1_3Tx, sendContribution1Message + " ac5 1000 ETH"); passIfTxStatusError(sendContribution1_4Tx, sendContribution1Message + " ac6 1000 ETH - Expecting failure, not whitelisted"); -passIfTxStatusError(sendContribution1_5Tx, sendContribution1Message + " ac7 8000.00000000001 ETH - Expecting failure, amount will blow the cap"); -failIfTxStatusError(sendContribution1_6Tx, sendContribution1Message + " ac7 7999 ETH"); +failIfTxStatusError(sendContribution1_5Tx, sendContribution1Message + " ac3 1 ETH"); +passIfTxStatusError(sendContribution1_6Tx, sendContribution1Message + " ac7 8000.00000000001 ETH - Expecting failure, amount will blow the cap"); +failIfTxStatusError(sendContribution1_7Tx, sendContribution1Message + " ac7 7999 ETH"); printPresaleContractDetails(); console.log("RESULT: "); diff --git a/audit/test/PresaleOracles_flat.js b/audit/test/PresaleOracles_flat.js index 622baf3..814dd30 100644 --- a/audit/test/PresaleOracles_flat.js +++ b/audit/test/PresaleOracles_flat.js @@ -1 +1 @@ -var saleOutput={"contracts":{"PresaleOracles_flat.sol:BasicToken":{"abi":"[{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"}]","bin":"6060604052341561000f57600080fd5b6102208061001e6000396000f3006060604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461005b57806370a0823114610080578063a9059cbb1461009f575b600080fd5b341561006657600080fd5b61006e6100d5565b60405190815260200160405180910390f35b341561008b57600080fd5b61006e600160a060020a03600435166100db565b34156100aa57600080fd5b6100c1600160a060020a03600435166024356100f6565b604051901515815260200160405180910390f35b60005481565b600160a060020a031660009081526001602052604090205490565b6000600160a060020a038316151561010d57600080fd5b600160a060020a033316600090815260016020526040902054610136908363ffffffff6101cc16565b600160a060020a03338116600090815260016020526040808220939093559085168152205461016b908363ffffffff6101de16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828211156101d857fe5b50900390565b6000828201838110156101ed57fe5b93925050505600a165627a7a723058208e041ad4354c374fb71d24e6f0b3979d9380c1818dbcdf70bc117239a4531fe90029"},"PresaleOracles_flat.sol:ERC20Basic":{"abi":"[{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"}]","bin":""},"PresaleOracles_flat.sol:Ownable":{"abi":"[{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]","bin":"6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101768061003b6000396000f30060606040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416638da5cb5b8114610050578063f2fde38b1461007f575b600080fd5b341561005b57600080fd5b6100636100a0565b604051600160a060020a03909116815260200160405180910390f35b341561008a57600080fd5b61009e600160a060020a03600435166100af565b005b600054600160a060020a031681565b60005433600160a060020a039081169116146100ca57600080fd5b600160a060020a03811615156100df57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582028d45d31b15c84659bb80e5bc654189cd13c0b20e039114f936790d7d2f517040029"},"PresaleOracles_flat.sol:PresaleOracles":{"abi":"[{\"constant\":true,\"inputs\":[],\"name\":\"rate\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"Presale\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_investors\",\"type\":\"address[]\"}],\"name\":\"whitelistInvestors\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"investorsLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"isValidPurchase\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumContribution\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"buy\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"investorBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newInvestor\",\"type\":\"address\"}],\"name\":\"whitelistInvestor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_startTime\",\"type\":\"uint256\"},{\"name\":\"_endTime\",\"type\":\"uint256\"},{\"name\":\"_cap\",\"type\":\"uint256\"},{\"name\":\"_minimumContribution\",\"type\":\"uint256\"},{\"name\":\"_vault\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"claimTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalInvestedInWei\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_investor\",\"type\":\"address\"}],\"name\":\"blacklistInvestor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]","bin":"6060604052600a805460a060020a60ff021916905560008054600160a060020a033316600160a060020a03199091161790556109ec806100406000396000f3006060604052600436106101035763ffffffff60e060020a6000350416632c4e722e811461010d5780633197cbb614610132578063355274ea14610145578063392e53cd146101585780635036d6101461017f5780635613680a14610192578063594337a9146101b057806361e214d8146101c357806378e97925146101d95780638da5cb5b146101ec578063937e09b11461021b5780639b19251a1461022e578063a6f2ae3a14610103578063b29a61c11461024d578063c430bcda1461026c578063ccd652961461028b578063df8de3e7146102b6578063f117c924146102d5578063f2fde38b146102e8578063fbfa77cf14610307578063ffc1b0381461031a575b61010b610339565b005b341561011857600080fd5b6101206103f0565b60405190815260200160405180910390f35b341561013d57600080fd5b6101206103f6565b341561015057600080fd5b6101206103fc565b341561016357600080fd5b61016b610402565b604051901515815260200160405180910390f35b341561018a57600080fd5b61010b610412565b341561019d57600080fd5b61010b6004803560248101910135610414565b34156101bb57600080fd5b6101206104d1565b34156101ce57600080fd5b61016b6004356104d7565b34156101e457600080fd5b610120610549565b34156101f757600080fd5b6101ff61054f565b604051600160a060020a03909116815260200160405180910390f35b341561022657600080fd5b61012061055e565b341561023957600080fd5b61016b600160a060020a0360043516610564565b341561025857600080fd5b610120600160a060020a0360043516610579565b341561027757600080fd5b61010b600160a060020a036004351661058b565b341561029657600080fd5b61010b600435602435604435606435600160a060020a03608435166105f8565b34156102c157600080fd5b61010b600160a060020a03600435166106ea565b34156102e057600080fd5b610120610852565b34156102f357600080fd5b61010b600160a060020a0360043516610858565b341561031257600080fd5b6101ff6108f3565b341561032557600080fd5b61010b600160a060020a0360043516610902565b600160a060020a03331660009081526008602052604081205460ff16151561036057600080fd5b610369346104d7565b151561037457600080fd5b600a5460a060020a900460ff16151561038c57600080fd5b600154610397610973565b101580156103ae57506002546103ab610973565b11155b15156103b957600080fd5b5033600160a060020a038116600090815260076020526040902080543490810190915560058054820190556103ed90610977565b50565b60045481565b60025481565b60035481565b600a5460a060020a900460ff1681565b565b60008054819033600160a060020a0390811691161461043257600080fd5b60fa83111561044057600080fd5b600091505b60ff8216839010156104cb57838360ff841681811061046057fe5b60209081029290920135600160a060020a0316600081815260089093526040909220549192505060ff1615156104c057600160a060020a0381166000908152600860205260409020805460ff191660019081179091556009805490910190555b600190910190610445565b50505050565b60095481565b600654600160a060020a0333166000908152600760205260408120549091828411918391829161050d908763ffffffff6109aa16565b10159150600354610529866005546109aa90919063ffffffff16565b111590508180156105375750805b80156105405750825b95945050505050565b60015481565b600054600160a060020a031681565b60065481565b60086020526000908152604090205460ff1681565b60076020526000908152604090205481565b60005433600160a060020a039081169116146105a657600080fd5b600160a060020a03811660009081526008602052604090205460ff1615156103ed57600160a060020a03166000908152600860205260409020805460ff19166001908117909155600980549091019055565b60005433600160a060020a0390811691161461061357600080fd5b600a5460a060020a900460ff161561062a57600080fd5b84151561063657600080fd5b83151561064257600080fd5b84841161064e57600080fd5b82151561065a57600080fd5b81151561066657600080fd5b600160a060020a038116151561067b57600080fd5b81831161068757600080fd5b600194909455600292909255600355600a8054600692909255600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff1974ff00000000000000000000000000000000000000001990921660a060020a1791909116179055565b60008054819033600160a060020a0390811691161461070857600080fd5b600160a060020a038316151561075657600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561075157600080fd5b61084d565b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156107b057600080fd5b6102c65a03f115156107c157600080fd5b505050604051805160008054919350600160a060020a03808616935063a9059cbb92169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561083157600080fd5b6102c65a03f1151561084257600080fd5b505050604051805150505b505050565b60055481565b60005433600160a060020a0390811691161461087357600080fd5b600160a060020a038116151561088857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a54600160a060020a031681565b60005433600160a060020a0390811691161461091d57600080fd5b600160a060020a03811660009081526008602052604090205460ff16156103ed57600160a060020a0381166000908152600860205260409020805460ff19169055600954156103ed576009805460001901905550565b4290565b600a54600160a060020a031681156108fc0282604051600060405180830381858888f1935050505015156103ed57600080fd5b6000828201838110156109b957fe5b93925050505600a165627a7a723058208653dd01ed9e066f91fb98733fc2b4a1319a4cd4929196ae4b891a3d506cfbd40029"},"PresaleOracles_flat.sol:SafeMath":{"abi":"[]","bin":"60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a7230582039e3bcdcfc88c49c4853afef8107f9293fa020ddfc8951a907de10a79214d1de0029"}},"version":"0.4.18+commit.9cf6e910.Darwin.appleclang"}; +var saleOutput={"contracts":{"PresaleOracles_flat.sol:Claimable":{"abi":"[{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]","bin":"606060405260008054600160a060020a033316600160a060020a03199091161790556101fe806100306000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416634e71e0c881146100665780638da5cb5b1461007b578063e30c3978146100aa578063f2fde38b146100bd575b600080fd5b341561007157600080fd5b6100796100dc565b005b341561008657600080fd5b61008e61016a565b604051600160a060020a03909116815260200160405180910390f35b34156100b557600080fd5b61008e610179565b34156100c857600080fd5b610079600160a060020a0360043516610188565b60015433600160a060020a039081169116146100f757600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b60005433600160a060020a039081169116146101a357600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582089b532a07dc51bba85532b86aa5ada29a45a664fd61ad065ccb7ede77cfeb0f00029"},"PresaleOracles_flat.sol:ERC20Basic":{"abi":"[{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"}]","bin":""},"PresaleOracles_flat.sol:Ownable":{"abi":"[{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]","bin":"6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101768061003b6000396000f30060606040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416638da5cb5b8114610050578063f2fde38b1461007f575b600080fd5b341561005b57600080fd5b6100636100a0565b604051600160a060020a03909116815260200160405180910390f35b341561008a57600080fd5b61009e600160a060020a03600435166100af565b005b600054600160a060020a031681565b60005433600160a060020a039081169116146100ca57600080fd5b600160a060020a03811615156100df57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582078f86721abcfd100ec9f25c7335c4177a272d3a6c07e3d41565c385d601ee0b20029"},"PresaleOracles_flat.sol:PresaleOracles":{"abi":"[{\"constant\":true,\"inputs\":[],\"name\":\"endTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cap\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"Presale\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_investors\",\"type\":\"address[]\"}],\"name\":\"whitelistInvestors\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"investorsLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"isValidPurchase\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumContribution\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"buy\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"investorBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newInvestor\",\"type\":\"address\"}],\"name\":\"whitelistInvestor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_startTime\",\"type\":\"uint256\"},{\"name\":\"_endTime\",\"type\":\"uint256\"},{\"name\":\"_cap\",\"type\":\"uint256\"},{\"name\":\"_minimumContribution\",\"type\":\"uint256\"},{\"name\":\"_vault\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"claimTokens\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalInvestedInWei\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_investor\",\"type\":\"address\"}],\"name\":\"blacklistInvestor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"investorAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"investorTotal\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"totalAmount\",\"type\":\"uint256\"}],\"name\":\"Contribution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]","bin":"6060604052600a805460a060020a60ff021916905560008054600160a060020a033316600160a060020a0319909116179055610acb806100406000396000f30060606040526004361061010e5763ffffffff60e060020a6000350416633197cbb68114610118578063355274ea1461013d578063392e53cd146101505780634e71e0c8146101775780635036d6101461018a5780635613680a1461019d578063594337a9146101bb57806361e214d8146101ce57806378e97925146101e45780638da5cb5b146101f7578063937e09b1146102265780639b19251a14610239578063a6f2ae3a1461010e578063b29a61c114610258578063c430bcda14610277578063ccd6529614610296578063df8de3e7146102c1578063e30c3978146102e0578063f117c924146102f3578063f2fde38b14610306578063fbfa77cf14610325578063ffc1b03814610338575b610116610357565b005b341561012357600080fd5b61012b610486565b60405190815260200160405180910390f35b341561014857600080fd5b61012b61048c565b341561015b57600080fd5b610163610492565b604051901515815260200160405180910390f35b341561018257600080fd5b6101166104a2565b341561019557600080fd5b610116610530565b34156101a857600080fd5b6101166004803560248101910135610532565b34156101c657600080fd5b61012b6105ef565b34156101d957600080fd5b6101636004356105f5565b34156101ef57600080fd5b61012b610667565b341561020257600080fd5b61020a61066d565b604051600160a060020a03909116815260200160405180910390f35b341561023157600080fd5b61012b61067c565b341561024457600080fd5b610163600160a060020a0360043516610682565b341561026357600080fd5b61012b600160a060020a0360043516610697565b341561028257600080fd5b610116600160a060020a03600435166106a9565b34156102a157600080fd5b610116600435602435604435606435600160a060020a0360843516610719565b34156102cc57600080fd5b610116600160a060020a036004351661080b565b34156102eb57600080fd5b61020a610973565b34156102fe57600080fd5b61012b610982565b341561031157600080fd5b610116600160a060020a0360043516610988565b341561033057600080fd5b61020a6109d2565b341561034357600080fd5b610116600160a060020a03600435166109e1565b600160a060020a03331660009081526008602052604081205460ff16151561037e57600080fd5b610387346105f5565b151561039257600080fd5b600a5460a060020a900460ff1615156103aa57600080fd5b6002546103b5610a52565b101580156103cc57506003546103c9610a52565b11155b15156103d757600080fd5b5033600160a060020a0381166000908152600760205260409020805434908101909155600580548201905561040b90610a56565b33600160a060020a03167f460eb5f4fd2327fac159ebd2dfcf744a60eed1a83dd95367e1811f166396748e346007600085600160a060020a0316600160a060020a031681526020019081526020016000205460055460405180848152602001838152602001828152602001935050505060405180910390a250565b60035481565b60045481565b600a5460a060020a900460ff1681565b60015433600160a060020a039081169116146104bd57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b565b60008054819033600160a060020a0390811691161461055057600080fd5b60fa83111561055e57600080fd5b600091505b60ff8216839010156105e957838360ff841681811061057e57fe5b60209081029290920135600160a060020a0316600081815260089093526040909220549192505060ff1615156105de57600160a060020a0381166000908152600860205260409020805460ff191660019081179091556009805490910190555b600190910190610563565b50505050565b60095481565b600654600160a060020a0333166000908152600760205260408120549091828411918391829161062b908763ffffffff610a8916565b1015915060045461064786600554610a8990919063ffffffff16565b111590508180156106555750805b801561065e5750825b95945050505050565b60025481565b600054600160a060020a031681565b60065481565b60086020526000908152604090205460ff1681565b60076020526000908152604090205481565b60005433600160a060020a039081169116146106c457600080fd5b600160a060020a03811660009081526008602052604090205460ff16151561071657600160a060020a0381166000908152600860205260409020805460ff191660019081179091556009805490910190555b50565b60005433600160a060020a0390811691161461073457600080fd5b600a5460a060020a900460ff161561074b57600080fd5b84151561075757600080fd5b83151561076357600080fd5b84841161076f57600080fd5b82151561077b57600080fd5b81151561078757600080fd5b600160a060020a038116151561079c57600080fd5b8183116107a857600080fd5b600294909455600392909255600455600a8054600692909255600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff1974ff00000000000000000000000000000000000000001990921660a060020a1791909116179055565b60008054819033600160a060020a0390811691161461082957600080fd5b600160a060020a038316151561087757600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561087257600080fd5b61096e565b82915081600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156108d157600080fd5b6102c65a03f115156108e257600080fd5b505050604051805160008054919350600160a060020a03808616935063a9059cbb92169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561095257600080fd5b6102c65a03f1151561096357600080fd5b505050604051805150505b505050565b600154600160a060020a031681565b60055481565b60005433600160a060020a039081169116146109a357600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600a54600160a060020a031681565b60005433600160a060020a039081169116146109fc57600080fd5b600160a060020a03811660009081526008602052604090205460ff161561071657600160a060020a0381166000908152600860205260409020805460ff1916905560095415610716576009805460001901905550565b4290565b600a54600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561071657600080fd5b600082820183811015610a9857fe5b93925050505600a165627a7a72305820de7f9d8fa537bcd4ce54abf619b795ddf1606bff2e09d5549c351ef6f8a65e380029"},"PresaleOracles_flat.sol:SafeMath":{"abi":"[]","bin":"60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058207b190b4cec8d3deb69d3ddb8796393b1bf1b638f14abba2697cfe17db70936d90029"}},"version":"0.4.18+commit.9cf6e910.Darwin.appleclang"}; diff --git a/audit/test/PresaleOracles_flat.sol b/audit/test/PresaleOracles_flat.sol index 99171e6..3a759c1 100644 --- a/audit/test/PresaleOracles_flat.sol +++ b/audit/test/PresaleOracles_flat.sol @@ -63,6 +63,35 @@ contract Ownable { } +contract Claimable is Ownable { + address public pendingOwner; + + /** + * @dev Modifier throws if called by any account other than the pendingOwner. + */ + modifier onlyPendingOwner() { + require(msg.sender == pendingOwner); + _; + } + + /** + * @dev Allows the current owner to set the pendingOwner address. + * @param newOwner The address to transfer ownership to. + */ + function transferOwnership(address newOwner) onlyOwner public { + pendingOwner = newOwner; + } + + /** + * @dev Allows the pendingOwner address to finalize the transfer. + */ + function claimOwnership() onlyPendingOwner public { + OwnershipTransferred(owner, pendingOwner); + owner = pendingOwner; + pendingOwner = 0x0; + } +} + contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); @@ -70,38 +99,7 @@ contract ERC20Basic { event Transfer(address indexed from, address indexed to, uint256 value); } -contract BasicToken is ERC20Basic { - using SafeMath for uint256; - - mapping(address => uint256) balances; - - /** - * @dev transfer token for a specified address - * @param _to The address to transfer to. - * @param _value The amount to be transferred. - */ - function transfer(address _to, uint256 _value) public returns (bool) { - require(_to != address(0)); - - // SafeMath.sub will throw if there is not enough balance. - balances[msg.sender] = balances[msg.sender].sub(_value); - balances[_to] = balances[_to].add(_value); - Transfer(msg.sender, _to, _value); - return true; - } - - /** - * @dev Gets the balance of the specified address. - * @param _owner The address to query the the balance of. - * @return An uint256 representing the amount owned by the passed address. - */ - function balanceOf(address _owner) public constant returns (uint256 balance) { - return balances[_owner]; - } - -} - -contract PresaleOracles is Ownable { +contract PresaleOracles is Claimable { /* * PresaleOracles * Simple Presale contract @@ -111,7 +109,6 @@ contract PresaleOracles is Ownable { uint256 public startTime; uint256 public endTime; uint256 public cap; - uint256 public rate; uint256 public totalInvestedInWei; uint256 public minimumContribution; mapping(address => uint256) public investorBalances; @@ -144,6 +141,7 @@ contract PresaleOracles is Ownable { vault = _vault; } //TESTED by Roman Storm + event Contribution(address indexed investor, uint256 investorAmount, uint256 investorTotal, uint256 totalAmount); function buy() public payable { require(whitelist[msg.sender]); require(isValidPurchase(msg.value)); @@ -153,6 +151,7 @@ contract PresaleOracles is Ownable { investorBalances[investor] += msg.value; totalInvestedInWei += msg.value; forwardFunds(msg.value); + Contribution(msg.sender, msg.value, investorBalances[investor], totalInvestedInWei); } //TESTED by Roman Storm @@ -166,7 +165,7 @@ contract PresaleOracles is Ownable { return; } - BasicToken token = BasicToken(_token); + ERC20Basic token = ERC20Basic(_token); uint256 balance = token.balanceOf(this); token.transfer(owner, balance); } diff --git a/audit/test/functions.js b/audit/test/functions.js index 8790eb2..9127548 100644 --- a/audit/test/functions.js +++ b/audit/test/functions.js @@ -243,10 +243,10 @@ function printPresaleContractDetails() { if (presaleContractAddress != null && presaleContractAbi != null) { var contract = eth.contract(presaleContractAbi).at(presaleContractAddress); console.log("RESULT: presale.owner=" + contract.owner()); + console.log("RESULT: presale.pendingOwner=" + contract.pendingOwner()); console.log("RESULT: presale.startTime=" + contract.startTime() + " " + new Date(contract.startTime() * 1000).toUTCString()); console.log("RESULT: presale.endTime=" + contract.endTime() + " " + new Date(contract.endTime() * 1000).toUTCString()); console.log("RESULT: presale.cap=" + contract.cap() + " " + contract.cap().shift(-18)); - console.log("RESULT: presale.rate=" + contract.rate()); console.log("RESULT: presale.totalInvestedInWei=" + contract.totalInvestedInWei() + " " + contract.totalInvestedInWei().shift(-18)); console.log("RESULT: presale.minimumContribution=" + contract.minimumContribution() + " " + contract.minimumContribution().shift(-18)); console.log("RESULT: presale.investorsLength=" + contract.investorsLength()); @@ -256,129 +256,20 @@ function printPresaleContractDetails() { var latestBlock = eth.blockNumber; var i; -// var newSaleEvents = contract.NewSale({}, { fromBlock: presaleFromBlock, toBlock: latestBlock }); -// i = 0; -// newSaleEvents.watch(function (error, result) { -// console.log("RESULT: NewSale " + i++ + " #" + result.blockNumber + ": " + JSON.stringify(result.args)); -// }); -// newSaleEvents.stopWatching(); -// -// var initializedEvents = contract.Initialized({}, { fromBlock: presaleFromBlock, toBlock: latestBlock }); -// i = 0; -// initializedEvents.watch(function (error, result) { -// console.log("RESULT: Initialized " + i++ + " #" + result.blockNumber + ": " + JSON.stringify(result.args)); -// }); -// initializedEvents.stopWatching(); -// -// var finalizedEvents = contract.Finalized({}, { fromBlock: presaleFromBlock, toBlock: latestBlock }); -// i = 0; -// finalizedEvents.watch(function (error, result) { -// console.log("RESULT: Finalized " + i++ + " #" + result.blockNumber + ": " + JSON.stringify(result.args)); -// }); -// finalizedEvents.stopWatching(); + var ownershipTransferredEvents = contract.OwnershipTransferred({}, { fromBlock: presaleFromBlock, toBlock: latestBlock }); + i = 0; + ownershipTransferredEvents.watch(function (error, result) { + console.log("RESULT: OwnershipTransferred " + i++ + " #" + result.blockNumber + ": " + JSON.stringify(result.args)); + }); + ownershipTransferredEvents.stopWatching(); + + var contributionEvents = contract.Contribution({}, { fromBlock: presaleFromBlock, toBlock: latestBlock }); + i = 0; + contributionEvents.watch(function (error, result) { + console.log("RESULT: Contribution " + i++ + " #" + result.blockNumber + ": " + JSON.stringify(result.args)); + }); + contributionEvents.stopWatching(); presaleFromBlock = parseInt(latestBlock) + 1; } -} - - -////----------------------------------------------------------------------------- -//// PlaceHolder Contract -////----------------------------------------------------------------------------- -//var placeHolderContractAddress = null; -//var placeHolderContractAbi = null; -// -//function addPlaceHolderContractAddressAndAbi(address, abi) { -// placeHolderContractAddress = address; -// placeHolderContractAbi = abi; -//} -// -//var placeHolderFromBlock = 0; -//function printPlaceHolderContractDetails() { -// console.log("RESULT: placeHolderContractAddress=" + placeHolderContractAddress); -// // console.log("RESULT: placeHolderContractAbi=" + JSON.stringify(placeHolderContractAbi)); -// if (placeHolderContractAddress != null && placeHolderContractAbi != null) { -// var contract = eth.contract(placeHolderContractAbi).at(placeHolderContractAddress); -// console.log("RESULT: placeHolder.controller=" + contract.controller()); -// console.log("RESULT: placeHolder.transferable=" + contract.transferable()); -// var latestBlock = eth.blockNumber; -// var i; -// -// var claimedTokensEvents = contract.ClaimedTokens({}, { fromBlock: placeHolderFromBlock, toBlock: latestBlock }); -// i = 0; -// claimedTokensEvents.watch(function (error, result) { -// console.log("RESULT: ClaimedTokens " + i++ + " #" + result.blockNumber + ": " + JSON.stringify(result.args)); -// }); -// claimedTokensEvents.stopWatching(); -// -// placeHolderFromBlock = parseInt(latestBlock) + 1; -// } -//} -// -// -////----------------------------------------------------------------------------- -//// Token Contract -////----------------------------------------------------------------------------- -//var tokenFromBlock = 0; -//function printTokenContractDetails() { -// console.log("RESULT: tokenContractAddress=" + tokenContractAddress); -// // console.log("RESULT: tokenContractAbi=" + JSON.stringify(tokenContractAbi)); -// if (tokenContractAddress != null && tokenContractAbi != null) { -// var contract = eth.contract(tokenContractAbi).at(tokenContractAddress); -// var decimals = contract.decimals(); -// console.log("RESULT: token.controller=" + contract.controller()); -// console.log("RESULT: token.symbol=" + contract.symbol()); -// console.log("RESULT: token.name=" + contract.name()); -// console.log("RESULT: token.decimals=" + decimals); -// console.log("RESULT: token.totalSupply=" + contract.totalSupply().shift(-decimals)); -// console.log("RESULT: token.transfersEnabled=" + contract.transfersEnabled()); -// // console.log("RESULT: token.totalSupplyHistory=" + contract.totalSupplyHistory()); -// -// var latestBlock = eth.blockNumber; -// var i; -// -// /* -// var totalSupplyHistoryLength = contract.totalSupplyHistoryLength(); -// for (i = 0; i < totalSupplyHistoryLength; i++) { -// var e = contract.totalSupplyHistory(i); -// console.log("RESULT: totalSupplyHistory(" + i + ") = " + e[0] + " => " + e[1].shift(-decimals)); -// } -// -// var balanceHistoryLength = contract.balanceHistoryLength(account3); -// for (i = 0; i < balanceHistoryLength; i++) { -// var e = contract.balanceHistory(account3, i); -// console.log("RESULT: balanceHistory(" + account3 + ", " + i + ") = " + e[0] + " => " + e[1].shift(-decimals)); -// } -// -// var balanceHistoryLength = contract.balanceHistoryLength(account4); -// for (i = 0; i < balanceHistoryLength; i++) { -// var e = contract.balanceHistory(account4, i); -// console.log("RESULT: balanceHistory(" + account4 + ", " + i + ") = " + e[0] + " => " + e[1].shift(-decimals)); -// } -// -// var balanceHistoryLength = contract.balanceHistoryLength(account5); -// for (i = 0; i < balanceHistoryLength; i++) { -// var e = contract.balanceHistory(account5, i); -// console.log("RESULT: balanceHistory(" + account5 + ", " + i + ") = " + e[0] + " => " + e[1].shift(-decimals)); -// } -// */ -// -// var approvalEvents = contract.Approval({}, { fromBlock: tokenFromBlock, toBlock: latestBlock }); -// i = 0; -// approvalEvents.watch(function (error, result) { -// console.log("RESULT: Approval " + i++ + " #" + result.blockNumber + " _owner=" + result.args._owner + " _spender=" + result.args._spender + " _amount=" + -// result.args._amount.shift(-decimals)); -// }); -// approvalEvents.stopWatching(); -// -// var transferEvents = contract.Transfer({}, { fromBlock: tokenFromBlock, toBlock: latestBlock }); -// i = 0; -// transferEvents.watch(function (error, result) { -// console.log("RESULT: Transfer " + i++ + " #" + result.blockNumber + ": _from=" + result.args._from + " _to=" + result.args._to + -// " _amount=" + result.args._amount.shift(-decimals)); -// }); -// transferEvents.stopWatching(); -// -// tokenFromBlock = parseInt(latestBlock) + 1; -// } -//} +} \ No newline at end of file diff --git a/audit/test/test1output.txt b/audit/test/test1output.txt index 0279db7..27404f2 100644 --- a/audit/test/test1output.txt +++ b/audit/test/test1output.txt @@ -8,9 +8,9 @@ DEPLOYMENTDATA = 'deploymentData.txt' INCLUDEJS = './include.js' TEST1OUTPUT = 'test1output.txt' TEST1RESULTS = 'test1results.txt' -CURRENTTIME = '1510716129' 'Wed 15 Nov 2017 03:22:09 UTC' -STARTTIME = '1510716204' 'Wed 15 Nov 2017 03:23:24 UTC' -ENDTIME = '1510716309' 'Wed 15 Nov 2017 03:25:09 UTC' +CURRENTTIME = '1510738545' 'Wed 15 Nov 2017 09:35:45 UTC' +STARTTIME = '1510738620' 'Wed 15 Nov 2017 09:37:00 UTC' +ENDTIME = '1510738725' 'Wed 15 Nov 2017 09:38:45 UTC' --- Differences ../../flat/PresaleOracles_flat.sol PresaleOracles_flat.sol --- solc, the solidity compiler commandline interface @@ -19,7 +19,7 @@ Welcome to the Geth JavaScript console! instance: Geth/v1.7.2-stable-1db4ecdc/darwin-amd64/go1.9 coinbase: 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e -at block: 2128 (Wed, 15 Nov 2017 14:21:46 AEDT) +at block: 235 (Wed, 15 Nov 2017 20:35:41 AEDT) datadir: /Users/bok/Projects/OraclesPresaleContractAudit/audit/test/testchain modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0 @@ -43,7 +43,7 @@ undefined > RESULT: # Account EtherBalanceChange Token Name RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 9.000000000000000000 0.000000000000000000 Account #0 - Miner +RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 18.000000000000000000 0.000000000000000000 Account #0 - Miner RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 0.000000000000000000 0.000000000000000000 Account #1 - Contract Owner RESULT: 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 @@ -94,18 +94,18 @@ undefined ... undefined > -RESULT: saleAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 status=0x1 Success gas=4000000 gasUsed=757113 costETH=0.013628034 costUSD=2.799906841368 @ ETH/USD=205.452 gasPrice=18 gwei block=2133 txIx=0 txId=0x063fb179de23d9230534d59fd7f0a47631c7df13a7571f84ebba8eb80b2cac01 @ 1510716144 Wed, 15 Nov 2017 03:22:24 UTC +RESULT: saleAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 status=0x1 Success gas=4000000 gasUsed=816729 costETH=0.014701122 costUSD=3.020374917144 @ ETH/USD=205.452 gasPrice=18 gwei block=243 txIx=0 txId=0x1ea3513d39bfbb097143e55fe13333550e9c1dfed7a5cd84a6e8e0fb1bb1839e @ 1510738564 Wed, 15 Nov 2017 09:36:04 UTC RESULT: # Account EtherBalanceChange Token Name RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 15.013628034000000000 0.000000000000000000 Account #0 - Miner -RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.013628034000000000 0.000000000000000000 Account #1 - Contract Owner +RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 27.014701122000000000 0.000000000000000000 Account #0 - Miner +RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.014701122000000000 0.000000000000000000 Account #1 - Contract Owner RESULT: 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 RESULT: 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 RESULT: 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 -RESULT: 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale +RESULT: 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: 0.000000000000000000 Total Token Balances RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- @@ -115,12 +115,12 @@ undefined RESULT: PASS Deploy Presale Contract 1 > -RESULT: presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +RESULT: presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 RESULT: presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 +RESULT: presale.pendingOwner=0x0000000000000000000000000000000000000000 RESULT: presale.startTime=0 Thu, 01 Jan 1970 00:00:00 UTC RESULT: presale.endTime=0 Thu, 01 Jan 1970 00:00:00 UTC RESULT: presale.cap=0 0 -RESULT: presale.rate=0 RESULT: presale.totalInvestedInWei=0 0 RESULT: presale.minimumContribution=0 0 RESULT: presale.investorsLength=0 @@ -157,20 +157,20 @@ undefined ... undefined > -RESULT: initialiseSaleTx status=0x1 Success gas=2000000 gasUsed=125772 costETH=0.002263896 costUSD=0.465121960992 @ ETH/USD=205.452 gasPrice=18 gwei block=2135 txIx=0 txId=0x2ec5170349e14c56ec7e71fc30b3b99deae5cb898d1ed13f5cf4bde82c083bc4 @ 1510716150 Wed, 15 Nov 2017 03:22:30 UTC +RESULT: initialiseSaleTx status=0x1 Success gas=2000000 gasUsed=125772 costETH=0.002263896 costUSD=0.465121960992 @ ETH/USD=205.452 gasPrice=18 gwei block=246 txIx=0 txId=0xcc849c8d23908c674e8d216fba12225f7c857d1a662a5f0b9224061f3c1bbd8c @ 1510738571 Wed, 15 Nov 2017 09:36:11 UTC undefined > RESULT: # Account EtherBalanceChange Token Name RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 21.015891930000000000 0.000000000000000000 Account #0 - Miner -RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.015891930000000000 0.000000000000000000 Account #1 - Contract Owner +RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 33.016965018000000000 0.000000000000000000 Account #0 - Miner +RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.016965018000000000 0.000000000000000000 Account #1 - Contract Owner RESULT: 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 RESULT: 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 RESULT: 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 -RESULT: 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale +RESULT: 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: 0.000000000000000000 Total Token Balances RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- @@ -180,12 +180,12 @@ undefined RESULT: PASS Initialise Contribution 1 > -RESULT: presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +RESULT: presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 RESULT: presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -RESULT: presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -RESULT: presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +RESULT: presale.pendingOwner=0x0000000000000000000000000000000000000000 +RESULT: presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +RESULT: presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC RESULT: presale.cap=1e+22 10000 -RESULT: presale.rate=0 RESULT: presale.totalInvestedInWei=0 0 RESULT: presale.minimumContribution=100000000000000000 0.1 RESULT: presale.investorsLength=0 @@ -198,8 +198,8 @@ undefined > > > -RESULT: Waiting until 'startTime' at 1510716204+0s =Wed, 15 Nov 2017 14:23:25 AEDT now=Wed, 15 Nov 2017 14:22:32 AEDT -RESULT: Waited until 'startTime' at at 1510716204+0s =Wed, 15 Nov 2017 14:23:25 AEDT now=Wed, 15 Nov 2017 14:23:25 AEDT +RESULT: Waiting until 'startTime' at 1510738620+0s =Wed, 15 Nov 2017 20:37:01 AEDT now=Wed, 15 Nov 2017 20:36:18 AEDT +RESULT: Waited until 'startTime' at at 1510738620+0s =Wed, 15 Nov 2017 20:37:01 AEDT now=Wed, 15 Nov 2017 20:37:01 AEDT RESULT: undefined > @@ -221,23 +221,23 @@ undefined ... undefined > -RESULT: whitelist_1Tx status=0x1 Success gas=2000000 gasUsed=63730 costETH=0.00114714 costUSD=0.23568220728 @ ETH/USD=205.452 gasPrice=18 gwei block=2152 txIx=0 txId=0xef451151539135a7c5d460664b8caf90b632a4c9f9817d5b23a20ee61aebb365 @ 1510716208 Wed, 15 Nov 2017 03:23:28 UTC +RESULT: whitelist_1Tx status=0x1 Success gas=2000000 gasUsed=63736 costETH=0.001147248 costUSD=0.235704396096 @ ETH/USD=205.452 gasPrice=18 gwei block=261 txIx=0 txId=0x8e3b1382be8fc68f31cbc6e83e51471e9dbfd7d52f591f0753334e916a81abe1 @ 1510738621 Wed, 15 Nov 2017 09:37:01 UTC undefined > -RESULT: whitelist_2Tx status=0x1 Success gas=2000000 gasUsed=103108 costETH=0.001855944 costUSD=0.381307406688 @ ETH/USD=205.452 gasPrice=18 gwei block=2152 txIx=1 txId=0x993fa0ff6eff5d53ecd4163246b12855ef4e61b0de971e242805d90b305d76ca @ 1510716208 Wed, 15 Nov 2017 03:23:28 UTC +RESULT: whitelist_2Tx status=0x1 Success gas=2000000 gasUsed=103108 costETH=0.001855944 costUSD=0.381307406688 @ ETH/USD=205.452 gasPrice=18 gwei block=261 txIx=1 txId=0x9e99b1898ad6eac340c5b5d86cc0e67c6011b3fed98068004d4ae1426417fea8 @ 1510738621 Wed, 15 Nov 2017 09:37:01 UTC undefined > RESULT: # Account EtherBalanceChange Token Name RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 72.018895014000000000 0.000000000000000000 Account #0 - Miner -RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.018895014000000000 0.000000000000000000 Account #1 - Contract Owner +RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 78.019968210000000000 0.000000000000000000 Account #0 - Miner +RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019968210000000000 0.000000000000000000 Account #1 - Contract Owner RESULT: 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 RESULT: 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 RESULT: 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 -RESULT: 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale +RESULT: 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: 0.000000000000000000 Total Token Balances RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- @@ -250,12 +250,12 @@ RESULT: PASS Whitelist - whitelist(account3) RESULT: PASS Whitelist - whitelist([account4, account5, account7]) 1 > -RESULT: presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +RESULT: presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 RESULT: presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -RESULT: presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -RESULT: presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +RESULT: presale.pendingOwner=0x0000000000000000000000000000000000000000 +RESULT: presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +RESULT: presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC RESULT: presale.cap=1e+22 10000 -RESULT: presale.rate=0 RESULT: presale.totalInvestedInWei=0 0 RESULT: presale.minimumContribution=100000000000000000 0.1 RESULT: presale.investorsLength=4 @@ -274,7 +274,7 @@ undefined > undefined > -RESULT: Whitelist +RESULT: Blacklist undefined > undefined @@ -282,35 +282,35 @@ undefined ... undefined > -RESULT: blacklist_1Tx status=0x1 Success gas=2000000 gasUsed=18918 costETH=0.000340524 costUSD=0.069961336848 @ ETH/USD=205.452 gasPrice=18 gwei block=2154 txIx=0 txId=0x8cc0e9a1106853db415c2a375259d86715e4792a39a90ea2dc0aca2d6092f278 @ 1510716218 Wed, 15 Nov 2017 03:23:38 UTC +RESULT: blacklist_1Tx status=0x1 Success gas=2000000 gasUsed=18940 costETH=0.00034092 costUSD=0.07004269584 @ ETH/USD=205.452 gasPrice=18 gwei block=263 txIx=0 txId=0x84efe1c7582f31e1f2847d843e4a359466edb7df6b135ad1075ef37dab5fecc6 @ 1510738626 Wed, 15 Nov 2017 09:37:06 UTC undefined > RESULT: # Account EtherBalanceChange Token Name RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 78.019235538000000000 0.000000000000000000 Account #0 - Miner -RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019235538000000000 0.000000000000000000 Account #1 - Contract Owner +RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 84.020309130000000000 0.000000000000000000 Account #0 - Miner +RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.020309130000000000 0.000000000000000000 Account #1 - Contract Owner RESULT: 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 RESULT: 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 RESULT: 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 -RESULT: 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale +RESULT: 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: 0.000000000000000000 Total Token Balances RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: undefined > -RESULT: PASS Whitelist - blacklist(account4) +RESULT: PASS Blacklist - blacklist(account4) 1 > -RESULT: presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +RESULT: presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 RESULT: presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -RESULT: presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -RESULT: presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +RESULT: presale.pendingOwner=0x0000000000000000000000000000000000000000 +RESULT: presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +RESULT: presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC RESULT: presale.cap=1e+22 10000 -RESULT: presale.rate=0 RESULT: presale.totalInvestedInWei=0 0 RESULT: presale.minimumContribution=100000000000000000 0.1 RESULT: presale.investorsLength=3 @@ -345,6 +345,8 @@ undefined > undefined > +undefined +> ... undefined > @@ -353,42 +355,45 @@ undefined ... undefined > -RESULT: sendContribution1_1Tx status=0x1 Success gas=400000 gasUsed=69426 costETH=0.001249668 costUSD=0.256746789936 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=0 txId=0x49f88ad156306136ef25ffb3124e6c78fd8afd33e0d087269780353fc79b09fe @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC +RESULT: sendContribution1_1Tx status=0x1 Success gas=400000 gasUsed=71707 costETH=0.001290726 costUSD=0.265182238152 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=0 txId=0x3df7972ea2596d4e7e4d053a5f6fda8d27ced4651c956fc3324a1f68be9285a1 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC undefined > -RESULT: sendContribution1_2Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=3 txId=0x90e0839e8b92d86e4dd85b27113f9d779e9254bddcf533336be60948e9649314 @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC +RESULT: sendContribution1_2Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=3 txId=0x71315cfcaf81c63d138ab7c1a6c3c5f3a9968a049f8c3644ee0009fabf8ec354 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC undefined > -RESULT: sendContribution1_3Tx status=0x1 Success gas=400000 gasUsed=54426 costETH=0.000979668 costUSD=0.201274749936 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=2 txId=0x04ca56fc7fbc1318280a02b345cd582975ab17447cbc24881d7a561d08c90309 @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC +RESULT: sendContribution1_3Tx status=0x1 Success gas=400000 gasUsed=56707 costETH=0.001020726 costUSD=0.209710198152 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=2 txId=0x6115bae7c8c1e9f3160f1b50bbcdd37d44950e37c51df5afff7e8898385ece70 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC undefined > -RESULT: sendContribution1_4Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=1 txId=0xbe9b0968e3eab1b6f6512bb6038ee787487906789527ed56e86a8d7db4d0b492 @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC +RESULT: sendContribution1_4Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=1 txId=0x62e4a3c9ae998052a474c1d8b11cb57953a26847f2aea8ff5c27432e3998e1e5 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC undefined > -RESULT: sendContribution1_5Tx status=0x0 Failure gas=400000 gasUsed=21897 costETH=0.000394146 costUSD=0.080978083992 @ ETH/USD=205.452 gasPrice=18 gwei block=2158 txIx=0 txId=0x3d14b2a96d3aa595a53492978e3cb8184e1a99b6d1f75888a88cd7a61b074012 @ 1510716235 Wed, 15 Nov 2017 03:23:55 UTC +RESULT: sendContribution1_5Tx status=0x1 Success gas=400000 gasUsed=41707 costETH=0.000750726 costUSD=0.154238158152 @ ETH/USD=205.452 gasPrice=18 gwei block=267 txIx=1 txId=0x230046323607e5030e0d5814a20528e8699afcc9c59de1f3a923e981d3c49ace @ 1510738635 Wed, 15 Nov 2017 09:37:15 UTC undefined > -RESULT: sendContribution1_6Tx status=0x1 Success gas=400000 gasUsed=54426 costETH=0.000979668 costUSD=0.201274749936 @ ETH/USD=205.452 gasPrice=18 gwei block=2160 txIx=0 txId=0xb3f169a86a02a724594ba063586974359c7854036b5c670b81de30620d4bf83b @ 1510716238 Wed, 15 Nov 2017 03:23:58 UTC +RESULT: sendContribution1_6Tx status=0x0 Failure gas=400000 gasUsed=21897 costETH=0.000394146 costUSD=0.080978083992 @ ETH/USD=205.452 gasPrice=18 gwei block=267 txIx=0 txId=0xfe3778a0549040c7cd2e550a72ebeb96ac856fa6f2be9b9ed40216151058da8b @ 1510738635 Wed, 15 Nov 2017 09:37:15 UTC +undefined +> +RESULT: sendContribution1_7Tx status=0x1 Success gas=400000 gasUsed=56707 costETH=0.001020726 costUSD=0.209710198152 @ ETH/USD=205.452 gasPrice=18 gwei block=269 txIx=0 txId=0xc5965f2ac4acbde675302df79204db16d0668c6812921658c90cb958e94c912a @ 1510738641 Wed, 15 Nov 2017 09:37:21 UTC undefined > RESULT: # Account EtherBalanceChange Token Name RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 96.023603400000000000 0.000000000000000000 Account #0 - Miner -RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019235538000000000 0.000000000000000000 Account #1 - Contract Owner +RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 102.025550892000000000 0.000000000000000000 Account #0 - Miner +RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.020309130000000000 0.000000000000000000 Account #1 - Contract Owner RESULT: 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 9999.000000000000000000 0.000000000000000000 Account #2 - Multisig -RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.001249668000000000 0.000000000000000000 Account #3 +RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.002041452000000000 0.000000000000000000 Account #3 RESULT: 4 0xa44a08d3f6933c69212114bb66e2df1813651844 -0.000382356000000000 0.000000000000000000 Account #4 -RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.000979668000000000 0.000000000000000000 Account #5 +RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.001020726000000000 0.000000000000000000 Account #5 RESULT: 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 -0.000382356000000000 0.000000000000000000 Account #6 -RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001373814000000000 0.000000000000000000 Account #7 -RESULT: 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale +RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001414872000000000 0.000000000000000000 Account #7 +RESULT: 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: 0.000000000000000000 Total Token Balances RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: undefined > -RESULT: PASS Send Contribution ac3 1000 ETH +RESULT: PASS Send Contribution ac3 999 ETH 1 > RESULT: PASS Send Contribution ac4 1000 ETH - Expecting failure, not whitelisted @@ -400,23 +405,30 @@ RESULT: PASS Send Contribution ac5 1000 ETH RESULT: PASS Send Contribution ac6 1000 ETH - Expecting failure, not whitelisted 1 > +RESULT: PASS Send Contribution ac3 1 ETH +1 +> RESULT: PASS Send Contribution ac7 8000.00000000001 ETH - Expecting failure, amount will blow the cap 1 > RESULT: PASS Send Contribution ac7 7999 ETH 1 > -RESULT: presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +RESULT: presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 RESULT: presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -RESULT: presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -RESULT: presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +RESULT: presale.pendingOwner=0x0000000000000000000000000000000000000000 +RESULT: presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +RESULT: presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC RESULT: presale.cap=1e+22 10000 -RESULT: presale.rate=0 RESULT: presale.totalInvestedInWei=9.999e+21 9999 RESULT: presale.minimumContribution=100000000000000000 0.1 RESULT: presale.investorsLength=3 RESULT: presale.vault=0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 RESULT: presale.isInitialized=true +RESULT: Contribution 0 #265: {"investor":"0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0","investorAmount":"999000000000000000000","investorTotal":"999000000000000000000","totalAmount":"999000000000000000000"} +RESULT: Contribution 1 #265: {"investor":"0xa55a151eb00fded1634d27d1127b4be4627079ea","investorAmount":"1e+21","investorTotal":"1e+21","totalAmount":"1.999e+21"} +RESULT: Contribution 2 #267: {"investor":"0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0","investorAmount":"1000000000000000000","investorTotal":"1e+21","totalAmount":"2e+21"} +RESULT: Contribution 3 #269: {"investor":"0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec","investorAmount":"7.999e+21","investorTotal":"7.999e+21","totalAmount":"9.999e+21"} undefined > RESULT: @@ -424,8 +436,8 @@ undefined > > > -RESULT: Waiting until 'endTime' at 1510716309+0s =Wed, 15 Nov 2017 14:25:10 AEDT now=Wed, 15 Nov 2017 14:24:01 AEDT -RESULT: Waited until 'endTime' at at 1510716309+0s =Wed, 15 Nov 2017 14:25:10 AEDT now=Wed, 15 Nov 2017 14:25:10 AEDT +RESULT: Waiting until 'endTime' at 1510738725+0s =Wed, 15 Nov 2017 20:38:46 AEDT now=Wed, 15 Nov 2017 20:37:23 AEDT +RESULT: Waited until 'endTime' at at 1510738725+0s =Wed, 15 Nov 2017 20:38:46 AEDT now=Wed, 15 Nov 2017 20:38:46 AEDT RESULT: undefined > @@ -445,20 +457,20 @@ undefined ... undefined > -RESULT: sendContribution2_1Tx status=0x0 Failure gas=400000 gasUsed=22233 costETH=0.000400194 costUSD=0.082220657688 @ ETH/USD=205.452 gasPrice=18 gwei block=2179 txIx=0 txId=0xa780705a34d4373217e350cc62d3d7b225ab1ef67db7e551f66416aea8858082 @ 1510716310 Wed, 15 Nov 2017 03:25:10 UTC +RESULT: sendContribution2_1Tx status=0x0 Failure gas=400000 gasUsed=22233 costETH=0.000400194 costUSD=0.082220657688 @ ETH/USD=205.452 gasPrice=18 gwei block=310 txIx=0 txId=0xea41d5c8d361926fee30e8af0a04a3424cd8c996ef18fa1828d6e579147b7f32 @ 1510738730 Wed, 15 Nov 2017 09:38:50 UTC undefined > RESULT: # Account EtherBalanceChange Token Name RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 153.024003594000000000 0.000000000000000000 Account #0 - Miner -RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019235538000000000 0.000000000000000000 Account #1 - Contract Owner +RESULT: 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 225.025951086000000000 0.000000000000000000 Account #0 - Miner +RESULT: 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.020309130000000000 0.000000000000000000 Account #1 - Contract Owner RESULT: 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 9999.000000000000000000 0.000000000000000000 Account #2 - Multisig -RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.001649862000000000 0.000000000000000000 Account #3 +RESULT: 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.002441646000000000 0.000000000000000000 Account #3 RESULT: 4 0xa44a08d3f6933c69212114bb66e2df1813651844 -0.000382356000000000 0.000000000000000000 Account #4 -RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.000979668000000000 0.000000000000000000 Account #5 +RESULT: 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.001020726000000000 0.000000000000000000 Account #5 RESULT: 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 -0.000382356000000000 0.000000000000000000 Account #6 -RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001373814000000000 0.000000000000000000 Account #7 -RESULT: 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale +RESULT: 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001414872000000000 0.000000000000000000 Account #7 +RESULT: 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- RESULT: 0.000000000000000000 Total Token Balances RESULT: -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- @@ -468,12 +480,12 @@ undefined RESULT: PASS Send Contribution After End ac3 1 ETH - Expecting failure, after end 1 > -RESULT: presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +RESULT: presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 RESULT: presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -RESULT: presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -RESULT: presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +RESULT: presale.pendingOwner=0x0000000000000000000000000000000000000000 +RESULT: presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +RESULT: presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC RESULT: presale.cap=1e+22 10000 -RESULT: presale.rate=0 RESULT: presale.totalInvestedInWei=9.999e+21 9999 RESULT: presale.minimumContribution=100000000000000000 0.1 RESULT: presale.investorsLength=3 diff --git a/audit/test/test1results.txt b/audit/test/test1results.txt index 3ccc94b..c2874fd 100644 --- a/audit/test/test1results.txt +++ b/audit/test/test1results.txt @@ -1,6 +1,6 @@ # Account EtherBalanceChange Token Name -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- - 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 9.000000000000000000 0.000000000000000000 Account #0 - Miner + 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 18.000000000000000000 0.000000000000000000 Account #0 - Miner 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 0.000000000000000000 0.000000000000000000 Account #1 - Contract Owner 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 @@ -14,29 +14,29 @@ Deploy Presale Contract -saleAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 status=0x1 Success gas=4000000 gasUsed=757113 costETH=0.013628034 costUSD=2.799906841368 @ ETH/USD=205.452 gasPrice=18 gwei block=2133 txIx=0 txId=0x063fb179de23d9230534d59fd7f0a47631c7df13a7571f84ebba8eb80b2cac01 @ 1510716144 Wed, 15 Nov 2017 03:22:24 UTC +saleAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 status=0x1 Success gas=4000000 gasUsed=816729 costETH=0.014701122 costUSD=3.020374917144 @ ETH/USD=205.452 gasPrice=18 gwei block=243 txIx=0 txId=0x1ea3513d39bfbb097143e55fe13333550e9c1dfed7a5cd84a6e8e0fb1bb1839e @ 1510738564 Wed, 15 Nov 2017 09:36:04 UTC # Account EtherBalanceChange Token Name -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- - 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 15.013628034000000000 0.000000000000000000 Account #0 - Miner - 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.013628034000000000 0.000000000000000000 Account #1 - Contract Owner + 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 27.014701122000000000 0.000000000000000000 Account #0 - Miner + 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.014701122000000000 0.000000000000000000 Account #1 - Contract Owner 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 - 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale + 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- 0.000000000000000000 Total Token Balances -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- PASS Deploy Presale Contract -presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 +presale.pendingOwner=0x0000000000000000000000000000000000000000 presale.startTime=0 Thu, 01 Jan 1970 00:00:00 UTC presale.endTime=0 Thu, 01 Jan 1970 00:00:00 UTC presale.cap=0 0 -presale.rate=0 presale.totalInvestedInWei=0 0 presale.minimumContribution=0 0 presale.investorsLength=0 @@ -44,94 +44,94 @@ presale.vault=0x0000000000000000000000000000000000000000 presale.isInitialized=false Initialise Contribution -initialiseSaleTx status=0x1 Success gas=2000000 gasUsed=125772 costETH=0.002263896 costUSD=0.465121960992 @ ETH/USD=205.452 gasPrice=18 gwei block=2135 txIx=0 txId=0x2ec5170349e14c56ec7e71fc30b3b99deae5cb898d1ed13f5cf4bde82c083bc4 @ 1510716150 Wed, 15 Nov 2017 03:22:30 UTC +initialiseSaleTx status=0x1 Success gas=2000000 gasUsed=125772 costETH=0.002263896 costUSD=0.465121960992 @ ETH/USD=205.452 gasPrice=18 gwei block=246 txIx=0 txId=0xcc849c8d23908c674e8d216fba12225f7c857d1a662a5f0b9224061f3c1bbd8c @ 1510738571 Wed, 15 Nov 2017 09:36:11 UTC # Account EtherBalanceChange Token Name -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- - 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 21.015891930000000000 0.000000000000000000 Account #0 - Miner - 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.015891930000000000 0.000000000000000000 Account #1 - Contract Owner + 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 33.016965018000000000 0.000000000000000000 Account #0 - Miner + 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.016965018000000000 0.000000000000000000 Account #1 - Contract Owner 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 - 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale + 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- 0.000000000000000000 Total Token Balances -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- PASS Initialise Contribution -presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +presale.pendingOwner=0x0000000000000000000000000000000000000000 +presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC presale.cap=1e+22 10000 -presale.rate=0 presale.totalInvestedInWei=0 0 presale.minimumContribution=100000000000000000 0.1 presale.investorsLength=0 presale.vault=0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 presale.isInitialized=true -Waiting until 'startTime' at 1510716204+0s =Wed, 15 Nov 2017 14:23:25 AEDT now=Wed, 15 Nov 2017 14:22:32 AEDT -Waited until 'startTime' at at 1510716204+0s =Wed, 15 Nov 2017 14:23:25 AEDT now=Wed, 15 Nov 2017 14:23:25 AEDT +Waiting until 'startTime' at 1510738620+0s =Wed, 15 Nov 2017 20:37:01 AEDT now=Wed, 15 Nov 2017 20:36:18 AEDT +Waited until 'startTime' at at 1510738620+0s =Wed, 15 Nov 2017 20:37:01 AEDT now=Wed, 15 Nov 2017 20:37:01 AEDT Whitelist -whitelist_1Tx status=0x1 Success gas=2000000 gasUsed=63730 costETH=0.00114714 costUSD=0.23568220728 @ ETH/USD=205.452 gasPrice=18 gwei block=2152 txIx=0 txId=0xef451151539135a7c5d460664b8caf90b632a4c9f9817d5b23a20ee61aebb365 @ 1510716208 Wed, 15 Nov 2017 03:23:28 UTC -whitelist_2Tx status=0x1 Success gas=2000000 gasUsed=103108 costETH=0.001855944 costUSD=0.381307406688 @ ETH/USD=205.452 gasPrice=18 gwei block=2152 txIx=1 txId=0x993fa0ff6eff5d53ecd4163246b12855ef4e61b0de971e242805d90b305d76ca @ 1510716208 Wed, 15 Nov 2017 03:23:28 UTC +whitelist_1Tx status=0x1 Success gas=2000000 gasUsed=63736 costETH=0.001147248 costUSD=0.235704396096 @ ETH/USD=205.452 gasPrice=18 gwei block=261 txIx=0 txId=0x8e3b1382be8fc68f31cbc6e83e51471e9dbfd7d52f591f0753334e916a81abe1 @ 1510738621 Wed, 15 Nov 2017 09:37:01 UTC +whitelist_2Tx status=0x1 Success gas=2000000 gasUsed=103108 costETH=0.001855944 costUSD=0.381307406688 @ ETH/USD=205.452 gasPrice=18 gwei block=261 txIx=1 txId=0x9e99b1898ad6eac340c5b5d86cc0e67c6011b3fed98068004d4ae1426417fea8 @ 1510738621 Wed, 15 Nov 2017 09:37:01 UTC # Account EtherBalanceChange Token Name -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- - 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 72.018895014000000000 0.000000000000000000 Account #0 - Miner - 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.018895014000000000 0.000000000000000000 Account #1 - Contract Owner + 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 78.019968210000000000 0.000000000000000000 Account #0 - Miner + 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019968210000000000 0.000000000000000000 Account #1 - Contract Owner 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 - 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale + 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- 0.000000000000000000 Total Token Balances -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- PASS Whitelist - whitelist(account3) PASS Whitelist - whitelist([account4, account5, account7]) -presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +presale.pendingOwner=0x0000000000000000000000000000000000000000 +presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC presale.cap=1e+22 10000 -presale.rate=0 presale.totalInvestedInWei=0 0 presale.minimumContribution=100000000000000000 0.1 presale.investorsLength=4 presale.vault=0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 presale.isInitialized=true -Whitelist -blacklist_1Tx status=0x1 Success gas=2000000 gasUsed=18918 costETH=0.000340524 costUSD=0.069961336848 @ ETH/USD=205.452 gasPrice=18 gwei block=2154 txIx=0 txId=0x8cc0e9a1106853db415c2a375259d86715e4792a39a90ea2dc0aca2d6092f278 @ 1510716218 Wed, 15 Nov 2017 03:23:38 UTC +Blacklist +blacklist_1Tx status=0x1 Success gas=2000000 gasUsed=18940 costETH=0.00034092 costUSD=0.07004269584 @ ETH/USD=205.452 gasPrice=18 gwei block=263 txIx=0 txId=0x84efe1c7582f31e1f2847d843e4a359466edb7df6b135ad1075ef37dab5fecc6 @ 1510738626 Wed, 15 Nov 2017 09:37:06 UTC # Account EtherBalanceChange Token Name -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- - 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 78.019235538000000000 0.000000000000000000 Account #0 - Miner - 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019235538000000000 0.000000000000000000 Account #1 - Contract Owner + 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 84.020309130000000000 0.000000000000000000 Account #0 - Miner + 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.020309130000000000 0.000000000000000000 Account #1 - Contract Owner 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 0.000000000000000000 0.000000000000000000 Account #2 - Multisig 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 0.000000000000000000 0.000000000000000000 Account #3 4 0xa44a08d3f6933c69212114bb66e2df1813651844 0.000000000000000000 0.000000000000000000 Account #4 5 0xa55a151eb00fded1634d27d1127b4be4627079ea 0.000000000000000000 0.000000000000000000 Account #5 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 0.000000000000000000 0.000000000000000000 Account #6 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec 0.000000000000000000 0.000000000000000000 Account #7 - 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale + 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- 0.000000000000000000 Total Token Balances -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -PASS Whitelist - blacklist(account4) -presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +PASS Blacklist - blacklist(account4) +presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +presale.pendingOwner=0x0000000000000000000000000000000000000000 +presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC presale.cap=1e+22 10000 -presale.rate=0 presale.totalInvestedInWei=0 0 presale.minimumContribution=100000000000000000 0.1 presale.investorsLength=3 @@ -139,72 +139,78 @@ presale.vault=0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 presale.isInitialized=true Send Contribution -sendContribution1_1Tx status=0x1 Success gas=400000 gasUsed=69426 costETH=0.001249668 costUSD=0.256746789936 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=0 txId=0x49f88ad156306136ef25ffb3124e6c78fd8afd33e0d087269780353fc79b09fe @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC -sendContribution1_2Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=3 txId=0x90e0839e8b92d86e4dd85b27113f9d779e9254bddcf533336be60948e9649314 @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC -sendContribution1_3Tx status=0x1 Success gas=400000 gasUsed=54426 costETH=0.000979668 costUSD=0.201274749936 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=2 txId=0x04ca56fc7fbc1318280a02b345cd582975ab17447cbc24881d7a561d08c90309 @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC -sendContribution1_4Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=2156 txIx=1 txId=0xbe9b0968e3eab1b6f6512bb6038ee787487906789527ed56e86a8d7db4d0b492 @ 1510716233 Wed, 15 Nov 2017 03:23:53 UTC -sendContribution1_5Tx status=0x0 Failure gas=400000 gasUsed=21897 costETH=0.000394146 costUSD=0.080978083992 @ ETH/USD=205.452 gasPrice=18 gwei block=2158 txIx=0 txId=0x3d14b2a96d3aa595a53492978e3cb8184e1a99b6d1f75888a88cd7a61b074012 @ 1510716235 Wed, 15 Nov 2017 03:23:55 UTC -sendContribution1_6Tx status=0x1 Success gas=400000 gasUsed=54426 costETH=0.000979668 costUSD=0.201274749936 @ ETH/USD=205.452 gasPrice=18 gwei block=2160 txIx=0 txId=0xb3f169a86a02a724594ba063586974359c7854036b5c670b81de30620d4bf83b @ 1510716238 Wed, 15 Nov 2017 03:23:58 UTC +sendContribution1_1Tx status=0x1 Success gas=400000 gasUsed=71707 costETH=0.001290726 costUSD=0.265182238152 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=0 txId=0x3df7972ea2596d4e7e4d053a5f6fda8d27ced4651c956fc3324a1f68be9285a1 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC +sendContribution1_2Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=3 txId=0x71315cfcaf81c63d138ab7c1a6c3c5f3a9968a049f8c3644ee0009fabf8ec354 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC +sendContribution1_3Tx status=0x1 Success gas=400000 gasUsed=56707 costETH=0.001020726 costUSD=0.209710198152 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=2 txId=0x6115bae7c8c1e9f3160f1b50bbcdd37d44950e37c51df5afff7e8898385ece70 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC +sendContribution1_4Tx status=0x0 Failure gas=400000 gasUsed=21242 costETH=0.000382356 costUSD=0.078555804912 @ ETH/USD=205.452 gasPrice=18 gwei block=265 txIx=1 txId=0x62e4a3c9ae998052a474c1d8b11cb57953a26847f2aea8ff5c27432e3998e1e5 @ 1510738632 Wed, 15 Nov 2017 09:37:12 UTC +sendContribution1_5Tx status=0x1 Success gas=400000 gasUsed=41707 costETH=0.000750726 costUSD=0.154238158152 @ ETH/USD=205.452 gasPrice=18 gwei block=267 txIx=1 txId=0x230046323607e5030e0d5814a20528e8699afcc9c59de1f3a923e981d3c49ace @ 1510738635 Wed, 15 Nov 2017 09:37:15 UTC +sendContribution1_6Tx status=0x0 Failure gas=400000 gasUsed=21897 costETH=0.000394146 costUSD=0.080978083992 @ ETH/USD=205.452 gasPrice=18 gwei block=267 txIx=0 txId=0xfe3778a0549040c7cd2e550a72ebeb96ac856fa6f2be9b9ed40216151058da8b @ 1510738635 Wed, 15 Nov 2017 09:37:15 UTC +sendContribution1_7Tx status=0x1 Success gas=400000 gasUsed=56707 costETH=0.001020726 costUSD=0.209710198152 @ ETH/USD=205.452 gasPrice=18 gwei block=269 txIx=0 txId=0xc5965f2ac4acbde675302df79204db16d0668c6812921658c90cb958e94c912a @ 1510738641 Wed, 15 Nov 2017 09:37:21 UTC # Account EtherBalanceChange Token Name -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- - 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 96.023603400000000000 0.000000000000000000 Account #0 - Miner - 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019235538000000000 0.000000000000000000 Account #1 - Contract Owner + 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 102.025550892000000000 0.000000000000000000 Account #0 - Miner + 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.020309130000000000 0.000000000000000000 Account #1 - Contract Owner 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 9999.000000000000000000 0.000000000000000000 Account #2 - Multisig - 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.001249668000000000 0.000000000000000000 Account #3 + 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.002041452000000000 0.000000000000000000 Account #3 4 0xa44a08d3f6933c69212114bb66e2df1813651844 -0.000382356000000000 0.000000000000000000 Account #4 - 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.000979668000000000 0.000000000000000000 Account #5 + 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.001020726000000000 0.000000000000000000 Account #5 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 -0.000382356000000000 0.000000000000000000 Account #6 - 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001373814000000000 0.000000000000000000 Account #7 - 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale + 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001414872000000000 0.000000000000000000 Account #7 + 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- 0.000000000000000000 Total Token Balances -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- -PASS Send Contribution ac3 1000 ETH +PASS Send Contribution ac3 999 ETH PASS Send Contribution ac4 1000 ETH - Expecting failure, not whitelisted PASS Send Contribution ac5 1000 ETH PASS Send Contribution ac6 1000 ETH - Expecting failure, not whitelisted +PASS Send Contribution ac3 1 ETH PASS Send Contribution ac7 8000.00000000001 ETH - Expecting failure, amount will blow the cap PASS Send Contribution ac7 7999 ETH -presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +presale.pendingOwner=0x0000000000000000000000000000000000000000 +presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC presale.cap=1e+22 10000 -presale.rate=0 presale.totalInvestedInWei=9.999e+21 9999 presale.minimumContribution=100000000000000000 0.1 presale.investorsLength=3 presale.vault=0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 presale.isInitialized=true +Contribution 0 #265: {"investor":"0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0","investorAmount":"999000000000000000000","investorTotal":"999000000000000000000","totalAmount":"999000000000000000000"} +Contribution 1 #265: {"investor":"0xa55a151eb00fded1634d27d1127b4be4627079ea","investorAmount":"1e+21","investorTotal":"1e+21","totalAmount":"1.999e+21"} +Contribution 2 #267: {"investor":"0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0","investorAmount":"1000000000000000000","investorTotal":"1e+21","totalAmount":"2e+21"} +Contribution 3 #269: {"investor":"0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec","investorAmount":"7.999e+21","investorTotal":"7.999e+21","totalAmount":"9.999e+21"} -Waiting until 'endTime' at 1510716309+0s =Wed, 15 Nov 2017 14:25:10 AEDT now=Wed, 15 Nov 2017 14:24:01 AEDT -Waited until 'endTime' at at 1510716309+0s =Wed, 15 Nov 2017 14:25:10 AEDT now=Wed, 15 Nov 2017 14:25:10 AEDT +Waiting until 'endTime' at 1510738725+0s =Wed, 15 Nov 2017 20:38:46 AEDT now=Wed, 15 Nov 2017 20:37:23 AEDT +Waited until 'endTime' at at 1510738725+0s =Wed, 15 Nov 2017 20:38:46 AEDT now=Wed, 15 Nov 2017 20:38:46 AEDT Send Contribution After End -sendContribution2_1Tx status=0x0 Failure gas=400000 gasUsed=22233 costETH=0.000400194 costUSD=0.082220657688 @ ETH/USD=205.452 gasPrice=18 gwei block=2179 txIx=0 txId=0xa780705a34d4373217e350cc62d3d7b225ab1ef67db7e551f66416aea8858082 @ 1510716310 Wed, 15 Nov 2017 03:25:10 UTC +sendContribution2_1Tx status=0x0 Failure gas=400000 gasUsed=22233 costETH=0.000400194 costUSD=0.082220657688 @ ETH/USD=205.452 gasPrice=18 gwei block=310 txIx=0 txId=0xea41d5c8d361926fee30e8af0a04a3424cd8c996ef18fa1828d6e579147b7f32 @ 1510738730 Wed, 15 Nov 2017 09:38:50 UTC # Account EtherBalanceChange Token Name -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- - 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 153.024003594000000000 0.000000000000000000 Account #0 - Miner - 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.019235538000000000 0.000000000000000000 Account #1 - Contract Owner + 0 0xa00af22d07c87d96eeeb0ed583f8f6ac7812827e 225.025951086000000000 0.000000000000000000 Account #0 - Miner + 1 0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -0.020309130000000000 0.000000000000000000 Account #1 - Contract Owner 2 0xa22ab8a9d641ce77e06d98b7d7065d324d3d6976 9999.000000000000000000 0.000000000000000000 Account #2 - Multisig - 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.001649862000000000 0.000000000000000000 Account #3 + 3 0xa33a6c312d9ad0e0f2e95541beed0cc081621fd0 -1000.002441646000000000 0.000000000000000000 Account #3 4 0xa44a08d3f6933c69212114bb66e2df1813651844 -0.000382356000000000 0.000000000000000000 Account #4 - 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.000979668000000000 0.000000000000000000 Account #5 + 5 0xa55a151eb00fded1634d27d1127b4be4627079ea -1000.001020726000000000 0.000000000000000000 Account #5 6 0xa66a85ede0cbe03694aa9d9de0bb19c99ff55bd9 -0.000382356000000000 0.000000000000000000 Account #6 - 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001373814000000000 0.000000000000000000 Account #7 - 8 0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 0.000000000000000000 0.000000000000000000 Presale + 7 0xa77a2b9d4b1c010a22a7c565dc418cef683dbcec -7999.001414872000000000 0.000000000000000000 Account #7 + 8 0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 0.000000000000000000 0.000000000000000000 Presale -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- 0.000000000000000000 Total Token Balances -- ------------------------------------------ --------------------------- ------------------------------ --------------------------- PASS Send Contribution After End ac3 1 ETH - Expecting failure, after end -presaleContractAddress=0x27daa9fe81944d721dc95e09f54c8bd3a90a5603 +presaleContractAddress=0xb8c31f47dfba40162326aba12cd577ae5cb2ce99 presale.owner=0xa11aae29840fbb5c86e6fd4cf809eba183aef433 -presale.startTime=1510716204 Wed, 15 Nov 2017 03:23:24 UTC -presale.endTime=1510716309 Wed, 15 Nov 2017 03:25:09 UTC +presale.pendingOwner=0x0000000000000000000000000000000000000000 +presale.startTime=1510738620 Wed, 15 Nov 2017 09:37:00 UTC +presale.endTime=1510738725 Wed, 15 Nov 2017 09:38:45 UTC presale.cap=1e+22 10000 -presale.rate=0 presale.totalInvestedInWei=9.999e+21 9999 presale.minimumContribution=100000000000000000 0.1 presale.investorsLength=3