Sponsored Link:  Download the Monaco app for Android and iOS on Aug 31 - www.mona.co
Contract Overview
ETH Balance: 100.32486522 Ether
ETH USD Value: $29,174.47 (@ $290.80/ETH)
No Of Transactions: 108 txns
  Latest 25 txns from a total Of 108 transactions View All

TxHash Age From To Value [TxFee]
0x96206f48937d8d156355eaf961cb63994c585f3afd99d4c577aa9b033e2793f640 days 5 hrs ago0xf03940c030ef9a107e987a2dc27e584f208dfba7  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.0008204
0x60af35d64242814aef952f1003a65fad9c37f794d304640a44e586074fcf6b4354 days 13 hrs ago0xb6500cebed3334dcd9a5484d27a1986703bdcb1a  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0x9518da1a0adde3565f8d916084996f3599eb20095df5986c17aadd0ca2854c15104 days 33 mins ago0xff2694cd9ca6a72c7864749072fab8db6090a1ca  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.0010255
0x45dcbb38de3d114b9da2cc95591fceed8183cdc605dff8499546623395f962af106 days 4 hrs ago0x60f297644bddf49885ffa59a5080b14a842f6931  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0x2c980aafcecf6757673e810d96ed13c789637d7f056fce312085c4689f03e23d112 days 5 hrs ago0x489b3f604624feafebe44ea247e3e5ee45963ae3  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000493776
0xc6f5508ee5c34e7defdc652aa30dde6d78f955989b08c8f0d8361abda6860abb115 days 7 hrs ago0x60fec4d4731772b85ff0990198eb9bbe0885275a  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000493776
0x18ef9248a01f23965962386a82667eab991d58ba8c83101cf8a0cb5590cebbb8115 days 7 hrs ago0x1203c41ae7469b837b340870ce4f2205b035e69f  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0x0628a679796b17eb1284cdd7bf61dea4a9a27e788878c2fc45ec2ab00a787f46118 days 3 hrs ago0xcb5a0bc5efc931c336fa844c920e070e6fc4e6ee  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0x0eeb8add40bd89421ce80d8e2362cb4211ad75c94febde33870abbcb79812194119 days 10 hrs ago0xc83ce4e0d62c3497dd8b4eb6250053d5ffc024b8  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.0004102
0x8e3344f39c2fa1dea3aaa98a4ee1d9e745115af5f17a7f0c852aab24ea0e9767122 days 16 hrs ago0xe902741cd4666e4023b7e3ab46d3de2985c996f1  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0x8c6359032fcdbc6bfbc190df958d7521799e35f53cee377f69a8cc2b36ef0691123 days 15 hrs ago0x83c201484fe80256beb3a7bf41a8addd92234444  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0x1fcc6ab1f0ea8b3dcdd2b8b708791e4e912d7669312171f4fdc2b26b1a375b3f124 days 20 hrs ago0xd99c11895789edabab4505f0b6260b27e5b8e27d  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0xd93a8d721daafba08e7a2b9b64ecb0700a167096c16909d21851238aad9feca8124 days 22 hrs ago0x3a848a0c9b3979ab9b1e54e5c67b2e540c29fc3c  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0x12c54bed5e026ea5e7fd36b19e90fe5fa617013fe664ab4ef1f90b8a32c1ff7b125 days 6 hrs ago0xeaf92113f4e8de35b9deb2d742b1746f1a8aa155  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0x49e7efda4f2a22d653c12b46af6b06a7aa122d5b354393ddeb5eef5a24c217b3125 days 13 hrs ago0x19c2f640996f740448eaa48cfda50fe2ad356902  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0xe207c86c4f1bc5a6195cc43cc369064fbe9d6585c1fc62cb51e39ac9b8e15713125 days 15 hrs ago0x8bbac3e58c628add0b59efc2aea2a06eaed9a311  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000843534
0x5863ed34479b3aa84fcba9c6a4c24a1378ed0a8c9f74558b49ce41a2f0538042125 days 17 hrs ago0xeefcd01087281d035ece6a3bc369eb3afafc4cec  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0xd6bc32c65a83d61177ed7deab9fbc789fe25b85dc4b74db7f9aa8268f165df57126 days 3 hrs ago0x489b3f604624feafebe44ea247e3e5ee45963ae3  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000741678
0x61e01e13f4d53fc6650a422c77c532b8c96e8c3d218dade6508cc718c3267a2a126 days 17 hrs ago0xf5cdf339de573c51b25bf55ccb85821c440315b9  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0x53727218e981236f0a8556d134b9bd99b5f8bac1942952422e5205f7efdc58fc127 days 12 hrs ago0x1804c47dec9be435c8edffc92e20c7d3fbae3909  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0xfa5369e25e4d88f3fd47a6c8b40b08ac71bc0d4cd006d261bbae51b7711d8767128 days 21 hrs ago0xe0b9c253b9040b12f4aa8eb7b42d91adb6653566  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0x5492a901514bf6f72eed46d3186ec6623422d6af1f12659a430154146cfbd304129 days 11 hrs ago0xd663be6b87a992c5245f054d32c7f5e99f5acc47  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000432054
0xac9828b7075a991695342ec54156b0ea9443ac04eadc95b1d2f98d119ff53bd9130 days 12 hrs ago0xb8540d00fdcadd494d53a62429c26c5dd46b812d  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.000433398
0xc8da21efac3c9181ebc1eecef3f8ebd9de7ef9da5c7e72de18b993dcca043286130 days 16 hrs ago0xaa8b781576c2275c3db5a1e16d239b6a060173d6  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00043071
0x068f8a2b08fe8d76d4a9b3f261ac69c858e62ec5c983de6160ec3ee684a4b863130 days 19 hrs ago0xb1d7ba92d19ba98c105090fdf66bc54dcdf5363a  IN   0x812ade7bc90c34e8b2ca92590e525305c85f2d030 Ether0.00022561
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns, Click here to View More View All
ParentTxHash Block Age From To Value
0x96206f48937d8d156355eaf961cb63994c585f3afd99d4c577aa9b033e2793f6416699440 days 5 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xf03940c030ef9a107e987a2dc27e584f208dfba71.1 Ether
0x60af35d64242814aef952f1003a65fad9c37f794d304640a44e586074fcf6b43410843354 days 13 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xb6500cebed3334dcd9a5484d27a1986703bdcb1a0.9748227 Ether
0x9518da1a0adde3565f8d916084996f3599eb20095df5986c17aadd0ca2854c153869819104 days 33 mins ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xff2694cd9ca6a72c7864749072fab8db6090a1ca10 Ether
0x45dcbb38de3d114b9da2cc95591fceed8183cdc605dff8499546623395f962af3858416106 days 4 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x60f297644bddf49885ffa59a5080b14a842f69316 Ether
0x2c980aafcecf6757673e810d96ed13c789637d7f056fce312085c4689f03e23d3826824112 days 5 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x489b3f604624feafebe44ea247e3e5ee45963ae32.999999997 Ether
0xc6f5508ee5c34e7defdc652aa30dde6d78f955989b08c8f0d8361abda6860abb3810683115 days 7 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x60fec4d4731772b85ff0990198eb9bbe0885275a3.16193757 Ether
0x18ef9248a01f23965962386a82667eab991d58ba8c83101cf8a0cb5590cebbb83810678115 days 7 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x1203c41ae7469b837b340870ce4f2205b035e69f5 Ether
0x0628a679796b17eb1284cdd7bf61dea4a9a27e788878c2fc45ec2ab00a787f463795759118 days 3 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xcb5a0bc5efc931c336fa844c920e070e6fc4e6ee0.27371429 Ether
0x0eeb8add40bd89421ce80d8e2362cb4211ad75c94febde33870abbcb798121943788594119 days 10 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xc83ce4e0d62c3497dd8b4eb6250053d5ffc024b81 Ether
0x8e3344f39c2fa1dea3aaa98a4ee1d9e745115af5f17a7f0c852aab24ea0e97673770694122 days 16 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xe902741cd4666e4023b7e3ab46d3de2985c996f10.647 Ether
0x8c6359032fcdbc6bfbc190df958d7521799e35f53cee377f69a8cc2b36ef06913765584123 days 15 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x83c201484fe80256beb3a7bf41a8addd9223444421 Ether
0x1fcc6ab1f0ea8b3dcdd2b8b708791e4e912d7669312171f4fdc2b26b1a375b3f3759033124 days 20 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xd99c11895789edabab4505f0b6260b27e5b8e27d102 Ether
0xd93a8d721daafba08e7a2b9b64ecb0700a167096c16909d21851238aad9feca83758560124 days 22 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x3a848a0c9b3979ab9b1e54e5c67b2e540c29fc3c1 Ether
0x12c54bed5e026ea5e7fd36b19e90fe5fa617013fe664ab4ef1f90b8a32c1ff7b3756639125 days 6 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xeaf92113f4e8de35b9deb2d742b1746f1a8aa1551.90958 Ether
0x49e7efda4f2a22d653c12b46af6b06a7aa122d5b354393ddeb5eef5a24c217b33755069125 days 13 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x19c2f640996f740448eaa48cfda50fe2ad3569026.8 Ether
0xe207c86c4f1bc5a6195cc43cc369064fbe9d6585c1fc62cb51e39ac9b8e157133754651125 days 15 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x8bbac3e58c628add0b59efc2aea2a06eaed9a31120 Ether
0x5863ed34479b3aa84fcba9c6a4c24a1378ed0a8c9f74558b49ce41a2f05380423754170125 days 17 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xeefcd01087281d035ece6a3bc369eb3afafc4cec1 Ether
0xd6bc32c65a83d61177ed7deab9fbc789fe25b85dc4b74db7f9aa8268f165df573751813126 days 3 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x489b3f604624feafebe44ea247e3e5ee45963ae30.000000003 Ether
0x61e01e13f4d53fc6650a422c77c532b8c96e8c3d218dade6508cc718c3267a2a3748868126 days 17 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xf5cdf339de573c51b25bf55ccb85821c440315b932 Ether
0x53727218e981236f0a8556d134b9bd99b5f8bac1942952422e5205f7efdc58fc3744496127 days 12 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030x1804c47dec9be435c8edffc92e20c7d3fbae39091 Ether
0xfa5369e25e4d88f3fd47a6c8b40b08ac71bc0d4cd006d261bbae51b7711d87673737019128 days 21 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xe0b9c253b9040b12f4aa8eb7b42d91adb665356611 Ether
0x5492a901514bf6f72eed46d3186ec6623422d6af1f12659a430154146cfbd3043733895129 days 11 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xd663be6b87a992c5245f054d32c7f5e99f5acc4750 Ether
0xac9828b7075a991695342ec54156b0ea9443ac04eadc95b1d2f98d119ff53bd93728048130 days 12 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xb8540d00fdcadd494d53a62429c26c5dd46b812d24.9979 Ether
0xc8da21efac3c9181ebc1eecef3f8ebd9de7ef9da5c7e72de18b993dcca0432863727269130 days 16 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xaa8b781576c2275c3db5a1e16d239b6a060173d610 Ether
0x068f8a2b08fe8d76d4a9b3f261ac69c858e62ec5c983de6160ec3ee684a4b8633726483130 days 19 hrs ago0x812ade7bc90c34e8b2ca92590e525305c85f2d030xb1d7ba92d19ba98c105090fdf66bc54dcdf5363a3 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: SikobaPresale
Compiler Version: v0.4.10+commit.f0d539ae
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.8;

/**
 * SIKOBA PRESALE CONTRACTS
 *
 * Version 0.1
 *
 * Author Roland Kofler, Alex Kampa, Bok 'BokkyPooBah' Khoo
 *
 * MIT LICENSE Copyright 2017 Sikoba Ltd
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 **/


/**
 *
 * Important information about the Sikoba token presale
 *
 * For details about the Sikoba token presale, and in particular to find out
 * about risks and limitations, please visit:
 *
 * http://www.sikoba.com/www/presale/index.html
 *
 **/


contract Owned {
    address public owner;

    function Owned() {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        if (msg.sender != owner) {
            throw;
        }
        _;
    }
}

/// ----------------------------------------------------------------------------------------
/// @title Sikoba Presale Contract
/// @author Roland Kofler, Alex Kampa, Bok 'Bokky Poo Bah' Khoo
/// @dev Changes to this contract will invalidate any security audits done before.
/// It is MANDATORY to protocol audits in the "Security reviews done" section
///  # Security checklists to use in each review:
///  - Consensys checklist https://github.com/ConsenSys/smart-contract-best-practices
///  - Roland Kofler's checklist https://github.com/rolandkofler/ether-security
///  - Read all of the code and use creative and lateral thinking to discover bugs
///  # Security reviews done:
///  Date         Auditors       Short summary of the review executed
///  Mar 03 2017 - Roland Kofler  - NO SECURITY REVIEW DONE
///  Mar 07 2017 - Roland Kofler, - Informal Security Review; added overflow protections;
///                Alex Kampa       fixed wrong inequality operators; added maximum amount
///                                 per transactions
///  Mar 07 2017 - Alex Kampa     - Some code clean up; removed restriction of
///                                 MINIMUM_PARTICIPATION_AMOUNT for preallocations
///  Mar 08 2017 - Bok Khoo       - Complete security review and modifications
///  Mar 09 2017 - Roland Kofler  - Check the diffs between MAR 8 and MAR 7 versions
///  Mar 12 2017 - Bok Khoo       - Renamed TOTAL_PREALLOCATION_IN_WEI
///                                 to TOTAL_PREALLOCATION.
///                                 Removed isPreAllocation from addBalance(...)
///  Mar 13 2017 - Bok Khoo       - Made dates in comments consistent
///  Apr 05 2017 - Roland Kofler  - removed the necessity of presale end before withdrawing
///                                 thus price drops during presale can be mitigated
///  Apr 24 2017 - Alex Kampa     - edited constants and added pre-allocation amounts
///                                 
/// ----------------------------------------------------------------------------------------
contract SikobaPresale is Owned {
    // -------------------------------------------------------------------------------------
    // TODO Before deployment of contract to Mainnet
    // 1. Confirm MINIMUM_PARTICIPATION_AMOUNT and MAXIMUM_PARTICIPATION_AMOUNT below
    // 2. Adjust PRESALE_MINIMUM_FUNDING and PRESALE_MAXIMUM_FUNDING to desired EUR
    //    equivalents
    // 3. Adjust PRESALE_START_DATE and confirm the presale period
    // 4. Update TOTAL_PREALLOCATION to the total preallocations received
    // 5. Add each preallocation address and funding amount from the Sikoba bookmaker
    //    to the constructor function
    // 6. Test the deployment to a dev blockchain or Testnet to confirm the constructor
    //    will not run out of gas as this will vary with the number of preallocation
    //    account entries
    // 7. A stable version of Solidity has been used. Check for any major bugs in the
    //    Solidity release announcements after this version.
    // 8. Remember to send the preallocated funds when deploying the contract!
    // -------------------------------------------------------------------------------------

    // Keep track of the total funding amount
    uint256 public totalFunding;

    // Minimum and maximum amounts per transaction for public participants
    uint256 public constant MINIMUM_PARTICIPATION_AMOUNT =   1 ether;
    uint256 public constant MAXIMUM_PARTICIPATION_AMOUNT = 250 ether;

    // Minimum and maximum goals of the presale
    uint256 public constant PRESALE_MINIMUM_FUNDING = 4000 ether;
    uint256 public constant PRESALE_MAXIMUM_FUNDING = 8000 ether;

    // Total preallocation in wei
    uint256 public constant TOTAL_PREALLOCATION = 496.46472668 ether;

    // Public presale period
    // Starts Apr 25 2017 @ 12:00pm (UTC) 2017-04-05T12:00:00+00:00 in ISO 8601
    // Ends May 15 2017 @ 12:00pm (UTC) 2017-05-15T12:00:00+00:00 in ISO 8601
    uint256 public constant PRESALE_START_DATE = 1493121600;
    uint256 public constant PRESALE_END_DATE = 1494849600;

    // Owner can clawback after a date in the future, so no ethers remain
    // trapped in the contract. This will only be relevant if the
    // minimum funding level is not reached
    // Jan 01 2018 @ 12:00pm (UTC) 2018-01-01T12:00:00+00:00 in ISO 8601
    uint256 public constant OWNER_CLAWBACK_DATE = 1514808000;

    /// @notice Keep track of all participants contributions, including both the
    ///         preallocation and public phases
    /// @dev Name complies with ERC20 token standard, etherscan for example will recognize
    ///      this and show the balances of the address
    mapping (address => uint256) public balanceOf;

    /// @notice Log an event for each funding contributed during the public phase
    /// @notice Events are not logged when the constructor is being executed during
    ///         deployment, so the preallocations will not be logged
    event LogParticipation(address indexed sender, uint256 value, uint256 timestamp);

    function SikobaPresale () payable {
        assertEquals(TOTAL_PREALLOCATION, msg.value);
        // Pre-allocations
        addBalance(0xe902741cD4666E4023b7E3AB46D3DE2985c996f1, 0.647 ether);
        addBalance(0x98aB52E249646cA2b013aF8F2E411bB90C1c9b4d, 66.98333494 ether);
        addBalance(0x7C6003EDEB99886E8D65b5a3AF81Cd82962266f6, 1.0508692 ether);
        addBalance(0x7C6003EDEB99886E8D65b5a3AF81Cd82962266f6, 1.9491308 ether);
        addBalance(0x99a4f90e16C043197dA52d5d8c9B36A106c27042, 13 ether);
        addBalance(0x452F7faa5423e8D38435FFC5cFBA6Da806F159a5, 0.412 ether);
        addBalance(0x7FEA1962E35D62059768C749bedd96cAB930D378, 127.8142 ether);
        addBalance(0x0bFEc3578B7174997EFBf145b8d5f5b5b66F273f, 10 ether);
        addBalance(0xB4f14EDd0e846727cAe9A4B866854ed1bfE95781, 110 ether);
        addBalance(0xB6500cebED3334DCd9A5484D27a1986703BDcB1A, 0.9748227 ether);
        addBalance(0x8FBCE39aB5f2664506d6C3e3CD39f8A419784f62, 75.1 ether);
        addBalance(0x665A816F54020a5A255b366b7763D5dfE6f87940, 9 ether);
        addBalance(0x665A816F54020a5A255b366b7763D5dfE6f87940, 12 ether);
        addBalance(0x9cB37d0Ae943C8B4256e71F98B2dD0935e89344f, 10 ether);
        addBalance(0x00F87D9949B8E96f7c70F9Dd5a6951258729c5C3, 22.24507475 ether);
        addBalance(0xFf2694cd9Ca6a72C7864749072Fab8DB6090a1Ca, 10 ether);
        addBalance(0xCb5A0bC5EfC931C336fa844C920E070E6fc4e6ee, 0.27371429 ether);
        addBalance(0xd956d333BF4C89Cb4e3A3d833610817D8D4bedA3, 1 ether);
        addBalance(0xBA43Bbd58E0F389B5652a507c8F9d30891750C00, 2 ether);
        addBalance(0x1203c41aE7469B837B340870CE4F2205b035E69F, 5 ether);
        addBalance(0x8efdB5Ee103c2295dAb1410B4e3d1eD7A91584d4, 1 ether);
        addBalance(0xed1B8bbAE30a58Dc1Ce57bCD7DcA51eB75e1fde9, 6.01458 ether);
        addBalance(0x96050f871811344Dd44C2F5b7bc9741Dff296f5e, 10 ether);
        assertEquals(TOTAL_PREALLOCATION, totalFunding);
    }

    /// @notice A participant sends a contribution to the contract's address
    ///         between the PRESALE_STATE_DATE and the PRESALE_END_DATE
    /// @notice Only contributions between the MINIMUM_PARTICIPATION_AMOUNT and
    ///         MAXIMUM_PARTICIPATION_AMOUNT are accepted. Otherwise the transaction
    ///         is rejected and contributed amount is returned to the participant's
    ///         account
    /// @notice A participant's contribution will be rejected if the presale
    ///         has been funded to the maximum amount
    function () payable {
        // A participant cannot send funds before the presale start date
        if (now < PRESALE_START_DATE) throw;
        // A participant cannot send funds after the presale end date
        if (now > PRESALE_END_DATE) throw;
        // A participant cannot send less than the minimum amount
        if (msg.value < MINIMUM_PARTICIPATION_AMOUNT) throw;
        // A participant cannot send more than the maximum amount
        if (msg.value > MAXIMUM_PARTICIPATION_AMOUNT) throw;
        // A participant cannot send funds if the presale has been reached the maximum
        // funding amount
        if (safeIncrement(totalFunding, msg.value) > PRESALE_MAXIMUM_FUNDING) throw;
        // Register the participant's contribution
        addBalance(msg.sender, msg.value);
    }

    /// @notice The owner can withdraw ethers already during presale,
    ///         only if the minimum funding level has been reached
    function ownerWithdraw(uint256 value) external onlyOwner {
        // The owner cannot withdraw if the presale did not reach the minimum funding amount
        if (totalFunding < PRESALE_MINIMUM_FUNDING) throw;
        // Withdraw the amount requested
        if (!owner.send(value)) throw;
    }

    /// @notice The participant will need to withdraw their funds from this contract if
    ///         the presale has not achieved the minimum funding level
    function participantWithdrawIfMinimumFundingNotReached(uint256 value) external {
        // Participant cannot withdraw before the presale ends
        if (now <= PRESALE_END_DATE) throw;
        // Participant cannot withdraw if the minimum funding amount has been reached
        if (totalFunding >= PRESALE_MINIMUM_FUNDING) throw;
        // Participant can only withdraw an amount up to their contributed balance
        if (balanceOf[msg.sender] < value) throw;
        // Participant's balance is reduced by the claimed amount.
        balanceOf[msg.sender] = safeDecrement(balanceOf[msg.sender], value);
        // Send ethers back to the participant's account
        if (!msg.sender.send(value)) throw;
    }

    /// @notice The owner can clawback any ethers after a date in the future, so no
    ///         ethers remain trapped in this contract. This will only be relevant
    ///         if the minimum funding level is not reached
    function ownerClawback() external onlyOwner {
        // The owner cannot withdraw before the clawback date
        if (now < OWNER_CLAWBACK_DATE) throw;
        // Send remaining funds back to the owner
        if (!owner.send(this.balance)) throw;
    }

    /// @dev Keep track of participants contributions and the total funding amount
    function addBalance(address participant, uint256 value) private {
        // Participant's balance is increased by the sent amount
        balanceOf[participant] = safeIncrement(balanceOf[participant], value);
        // Keep track of the total funding amount
        totalFunding = safeIncrement(totalFunding, value);
        // Log an event of the participant's contribution
        LogParticipation(participant, value, now);
    }

    /// @dev Throw an exception if the amounts are not equal
    function assertEquals(uint256 expectedValue, uint256 actualValue) private constant {
        if (expectedValue != actualValue) throw;
    }

    /// @dev Add a number to a base value. Detect overflows by checking the result is larger
    ///      than the original base value.
    function safeIncrement(uint256 base, uint256 increment) private constant returns (uint256) {
        uint256 result = base + increment;
        if (result < base) throw;
        return result;
    }

    /// @dev Subtract a number from a base value. Detect underflows by checking that the result
    ///      is smaller than the original base value
    function safeDecrement(uint256 base, uint256 increment) private constant returns (uint256) {
        uint256 result = base - increment;
        if (result > base) throw;
        return result;
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"participantWithdrawIfMinimumFundingNotReached","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOTAL_PREALLOCATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_PARTICIPATION_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"ownerWithdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_MINIMUM_FUNDING","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"OWNER_CLAWBACK_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_MAXIMUM_FUNDING","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAXIMUM_PARTICIPATION_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"ownerClawback","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_END_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_START_DATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalFunding","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":true,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"LogParticipation","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040525b5b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b62000071681ae9d5068858cbf000346200060b6401000000000262000892176401000000009004565b620000ad73e902741cd4666e4023b7e3ab46d3de2985c996f16708fa9b1271ad80006200062064010000000002620003bb176401000000009004565b620000ea7398ab52e249646ca2b013af8f2e411bb90c1c9b4d6803a1949c3c29b618006200062064010000000002620003bb176401000000009004565b62000126737c6003edeb99886e8d65b5a3af81cd82962266f6670e956ff83b6620006200062064010000000002620003bb176401000000009004565b62000162737c6003edeb99886e8d65b5a3af81cd82962266f6671b0cb422bac5e0006200062064010000000002620003bb176401000000009004565b6200019e7399a4f90e16c043197da52d5d8c9b36a106c2704267b469471f801400006200062064010000000002620003bb176401000000009004565b620001da73452f7faa5423e8d38435ffc5cfba6da806f159a56705b7b7d12f7600006200062064010000000002620003bb176401000000009004565b62000217737fea1962e35d62059768c749bedd96cab930d3786806edc741b61abb80006200062064010000000002620003bb176401000000009004565b62000253730bfec3578b7174997efbf145b8d5f5b5b66f273f678ac7230489e800006200062064010000000002620003bb176401000000009004565b6200029073b4f14edd0e846727cae9a4b866854ed1bfe957816805f68e8131ecf800006200062064010000000002620003bb176401000000009004565b620002cc73b6500cebed3334dcd9a5484d27a1986703bdcb1a670d874414b07cb8006200062064010000000002620003bb176401000000009004565b62000309738fbce39ab5f2664506d6c3e3cd39f8a419784f6268041238cc1a67d600006200062064010000000002620003bb176401000000009004565b6200034573665a816f54020a5a255b366b7763d5dfe6f87940677ce66c50e28400006200062064010000000002620003bb176401000000009004565b6200038173665a816f54020a5a255b366b7763d5dfe6f8794067a688906bd8b000006200062064010000000002620003bb176401000000009004565b620003bd739cb37d0ae943c8b4256e71f98b2dd0935e89344f678ac7230489e800006200062064010000000002620003bb176401000000009004565b620003f972f87d9949b8e96f7c70f9dd5a6951258729c5c3680134b661a02bc2ec006200062064010000000002620003bb176401000000009004565b6200043573ff2694cd9ca6a72c7864749072fab8db6090a1ca678ac7230489e800006200062064010000000002620003bb176401000000009004565b6200047173cb5a0bc5efc931c336fa844c920e070e6fc4e6ee6703cc6db25165f4006200062064010000000002620003bb176401000000009004565b620004ad73d956d333bf4c89cb4e3a3d833610817d8d4beda3670de0b6b3a76400006200062064010000000002620003bb176401000000009004565b620004e973ba43bbd58e0f389b5652a507c8f9d30891750c00671bc16d674ec800006200062064010000000002620003bb176401000000009004565b62000525731203c41ae7469b837b340870ce4f2205b035e69f674563918244f400006200062064010000000002620003bb176401000000009004565b62000561738efdb5ee103c2295dab1410b4e3d1ed7a91584d4670de0b6b3a76400006200062064010000000002620003bb176401000000009004565b6200059d73ed1b8bbae30a58dc1ce57bcd7dca51eb75e1fde967537814a4b52b40006200062064010000000002620003bb176401000000009004565b620005d97396050f871811344dd44c2f5b7bc9741dff296f5e678ac7230489e800006200062064010000000002620003bb176401000000009004565b62000604681ae9d5068858cbf0006001546200060b6401000000000262000892176401000000009004565b5b62000768565b80821415156200061b5760006000fd5b5b5050565b6200067f600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482620007456401000000000262000399176401000000009004565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006e460015482620007456401000000000262000399176401000000009004565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167f0d0c0c5120500a67dc7f367c4b7f7afc5a39488be49264d6bd4a6c7e19b245ca8242604051808381526020018281526020019250505060405180910390a25b5050565b600060008284019050838110156200075d5760006000fd5b8091505b5092915050565b6108d280620007786000396000f300606060405236156100ce576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632350e762146101555780632bc402fa146101755780632e87edd91461019b57806333f707d1146101c1578063475ec95a146101e15780635a4a04a714610207578063619622651461022d5780636586bb251461025357806370a08231146102795780638da5cb5b146102c3578063b63e93dc14610315578063b644ee4114610327578063f0b800001461034d578063fe47a8a714610373575b6101535b6358ff3a404210156100e45760006000fd5b63591998404211156100f65760006000fd5b670de0b6b3a764000034101561010c5760006000fd5b680d8d726b7177a800003411156101235760006000fd5b6901b1ae4d6e2ef500000061013a60015434610399565b11156101465760006000fd5b61015033346103bb565b5b565b005b341561015d57fe5b61017360048080359060200190919050506104b4565b005b341561017d57fe5b610185610602565b6040518082815260200191505060405180910390f35b34156101a357fe5b6101ab61060f565b6040518082815260200191505060405180910390f35b34156101c957fe5b6101df600480803590602001909190505061061b565b005b34156101e957fe5b6101f16106fc565b6040518082815260200191505060405180910390f35b341561020f57fe5b610217610709565b6040518082815260200191505060405180910390f35b341561023557fe5b61023d610711565b6040518082815260200191505060405180910390f35b341561025b57fe5b61026361071f565b6040518082815260200191505060405180910390f35b341561028157fe5b6102ad600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061072c565b6040518082815260200191505060405180910390f35b34156102cb57fe5b6102d3610744565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561031d57fe5b61032561076a565b005b341561032f57fe5b61033761085a565b6040518082815260200191505060405180910390f35b341561035557fe5b61035d610862565b6040518082815260200191505060405180910390f35b341561037b57fe5b61038361086a565b6040518082815260200191505060405180910390f35b600060008284019050838110156103b05760006000fd5b8091505b5092915050565b610404600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610399565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061045360015482610399565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167f0d0c0c5120500a67dc7f367c4b7f7afc5a39488be49264d6bd4a6c7e19b245ca8242604051808381526020018281526020019250505060405180910390a25b5050565b6359199840421115156104c75760006000fd5b68d8d726b7177a8000006001541015156104e15760006000fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561052e5760006000fd5b610577600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482610870565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f1935050505015156105fe5760006000fd5b5b50565b681ae9d5068858cbf00081565b670de0b6b3a764000081565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106785760006000fd5b68d8d726b7177a80000060015410156106915760006000fd5b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f1935050505015156106f75760006000fd5b5b5b50565b68d8d726b7177a80000081565b635a4a22c081565b6901b1ae4d6e2ef500000081565b680d8d726b7177a8000081565b60026020528060005260406000206000915090505481565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107c75760006000fd5b635a4a22c04210156107d95760006000fd5b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051809050600060405180830381858888f1935050505015156108565760006000fd5b5b5b565b635919984081565b6358ff3a4081565b60015481565b600060008284039050838111156108875760006000fd5b8091505b5092915050565b80821415156108a15760006000fd5b5b50505600a165627a7a72305820390a0625f1eb25d4d0aa5c13782ea9c4c4854937d2a46e5862a82fe1bc35c9800029

   Swarm Source:
bzzr://390a0625f1eb25d4d0aa5c13782ea9c4c4854937d2a46e5862a82fe1bc35c980
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.