ETH Price: $2,095.12 (-2.58%)
Gas: 0.04 Gwei

Contract

0xB854728AFAA9f8dAe90794De4b9C19F0C5Eb969a
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Age:180D
Reset Filter

Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Age:180D
Reset Filter

Advanced mode:
Parent Transaction Hash Method Block
From
To

There are no matching entries

Update your filters to view other transactions

View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CrowdSale

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-12-17
*/

pragma solidity ^0.4.18;

/* taking ideas from Zeppelin solidity module */
contract SafeMath {

    // it is recommended to define functions which can neither read the state of blockchain nor write in it as pure instead of constant

    function safeAdd(uint256 x, uint256 y) internal pure returns(uint256) {
        uint256 z = x + y;
        assert((z >= x));
        return z;
    }

    function safeSubtract(uint256 x, uint256 y) internal pure returns(uint256) {
        assert(x >= y);
        return x - y;
    }

    function safeMult(uint256 x, uint256 y) internal pure returns(uint256) {
        uint256 z = x * y;
        assert((x == 0)||(z/x == y));
        return z;
    }

    function safeDiv(uint256 x, uint256 y) internal pure returns (uint256) {
        uint256 z = x / y;
        return z;
    }

    // mitigate short address attack
    // thanks to https://github.com/numerai/contract/blob/c182465f82e50ced8dacb3977ec374a892f5fa8c/contracts/Safe.sol#L30-L34.
    // TODO: doublecheck implication of >= compared to ==
    modifier onlyPayloadSize(uint numWords) {
        assert(msg.data.length >= numWords * 32 + 4);
        _;
    }

}
// The abstract token contract

contract TrakToken {
    function TrakToken () public {}
    function transfer (address ,uint) public pure { }
    function burn (uint256) public pure { }
    function finalize() public pure { }
    function changeTokensWallet (address) public pure { }
}

contract CrowdSale is SafeMath {

    ///metadata
    enum State { Fundraising,Paused,Successful,Closed }
    State public state = State.Fundraising; // equal to 0
    string public version = "1.0";

    //External contracts
    TrakToken public trakToken;
    // who created smart contract
    address public creator;
    // Address which will receive raised funds
    address public contractOwner;
    // adreess vs state mapping (1 for exists , zero default);
    mapping (address => bool) public whitelistedContributors;

    uint256 public fundingStartBlock; // Dec 15 - Dec 25
    uint256 public firstChangeBlock;  // December 25 - January 5
    uint256 public secondChangeBlock; // January 5 -January 15
    uint256 public thirdChangeBlock;  // January 16
    uint256 public fundingEndBlock;   // Jan 31
    // funding maximum duration in hours
    uint256 public fundingDurationInHours;
    uint256 constant public fundingMaximumTargetInWei = 66685 ether;
    // We need to keep track of how much ether (in units of Wei) has been contributed
    uint256 public totalRaisedInWei;
    // maximum ether we will accept from one user
    uint256 constant public maxPriceInWeiFromUser = 1500 ether;
    uint256 constant public minPriceInWeiForPre = 1 ether;
    uint256 constant public minPriceInWeiForIco = 0.5 ether;
    uint8 constant public  decimals = 18;
    // Number of tokens distributed to investors
    uint public tokensDistributed = 0;
    // tokens per tranche
    uint constant public tokensPerTranche = 11000000 * (uint256(10) ** decimals);
    uint256 public constant privateExchangeRate = 1420; // 23.8%
    uint256 public constant firstExchangeRate   = 1289; // 15.25%
    uint256 public constant secondExchangeRate  = 1193;  //  8.42%
    uint256 public constant thirdExchangeRate   = 1142;  //  4.31%
    uint256 public constant fourthExchangeRate  = 1118;  //  2.25%
    uint256 public constant fifthExchangeRate   = 1105;  // 1.09%

    /// modifiers
    modifier onlyOwner() {
        require(msg.sender == contractOwner);
        _;
    }

    modifier isIcoOpen() {
        require(block.number >= fundingStartBlock);
        require(block.number <= fundingEndBlock);
        require(totalRaisedInWei <= fundingMaximumTargetInWei);
        _;
    }


    modifier isMinimumPrice() {
        if (tokensDistributed < safeMult(3,tokensPerTranche) || block.number < thirdChangeBlock ) {
           require(msg.value >= minPriceInWeiForPre);
        }
        else if (tokensDistributed <= safeMult(6,tokensPerTranche)) {
           require(msg.value >= minPriceInWeiForIco);
        }

        require(msg.value <= maxPriceInWeiFromUser);

         _;
    }

    modifier isIcoFinished() {
        require(totalRaisedInWei >= fundingMaximumTargetInWei || (block.number > fundingEndBlock) || state == State.Successful );
        _;
    }

    modifier inState(State _state) {
        require(state == _state);
        _;
    }

    modifier isCreator() {
        require(msg.sender == creator);
        _;
    }

    // wait 100 block after final contract state before allowing contract destruction
    modifier atEndOfLifecycle() {
        require(totalRaisedInWei >= fundingMaximumTargetInWei || (block.number > fundingEndBlock + 40000));
        _;
    }

    /// constructor
    function CrowdSale(
    address _fundsWallet,
    uint256 _fundingStartBlock,
    uint256 _firstInHours,
    uint256 _secondInHours,
    uint256 _thirdInHours,
    uint256 _fundingDurationInHours,
    TrakToken _tokenAddress
    ) public {

        require(safeAdd(_fundingStartBlock, safeMult(_fundingDurationInHours , 212)) > _fundingStartBlock);

        creator = msg.sender;

        if (_fundsWallet !=0) {
            contractOwner = _fundsWallet;
        }
        else {
            contractOwner = msg.sender;
        }

        fundingStartBlock = _fundingStartBlock;
        firstChangeBlock =  safeAdd(fundingStartBlock, safeMult(_firstInHours , 212));
        secondChangeBlock = safeAdd(fundingStartBlock, safeMult(_secondInHours , 212));
        thirdChangeBlock =  safeAdd(fundingStartBlock, safeMult(_thirdInHours , 212));
        fundingDurationInHours = _fundingDurationInHours;
        fundingEndBlock = safeAdd(fundingStartBlock, safeMult(_fundingDurationInHours , 212));
        trakToken = TrakToken(_tokenAddress);
    }


    // fallback function can be used to buy tokens
    function () external payable {
        buyTokens(msg.sender);
    }


    function buyTokens(address beneficiary) inState(State.Fundraising) isIcoOpen isMinimumPrice  public  payable  {
        require(beneficiary != 0x0);
        // state 1 is set for
        require(whitelistedContributors[beneficiary] == true );
        uint256 tokenAmount;
        uint256 checkedReceivedWei = safeAdd(totalRaisedInWei, msg.value);
        // Check that this transaction wouldn't exceed the ETH max cap

        if (checkedReceivedWei > fundingMaximumTargetInWei ) {

            // update totalRaised After Subtracting
            totalRaisedInWei = safeAdd(totalRaisedInWei,safeSubtract(fundingMaximumTargetInWei,totalRaisedInWei));
            // Calculate how many tokens (in units of Wei) should be awarded on this transaction
            var (rate,/*trancheMaxTokensLeft */) = getCurrentTokenPrice();
            // Calculate how many tokens (in units of Wei) should be awarded on this transaction
            tokenAmount = safeMult(safeSubtract(fundingMaximumTargetInWei,totalRaisedInWei), rate);
            // Send change extra ether to user.
            beneficiary.transfer(safeSubtract(checkedReceivedWei,fundingMaximumTargetInWei));
        }
        else {
            totalRaisedInWei = safeAdd(totalRaisedInWei,msg.value);
            var (currentRate,trancheMaxTokensLeft) = getCurrentTokenPrice();
            // Calculate how many tokens (in units of Wei) should be awarded on this transaction
            tokenAmount = safeMult(msg.value, currentRate);
            if (tokenAmount > trancheMaxTokensLeft) {
                // handle round off error by adding .1 token
                tokensDistributed =  safeAdd(tokensDistributed,safeAdd(trancheMaxTokensLeft,safeDiv(1,10)));
                //find remaining tokens by getCurrentTokenPrice() function and sell them from remaining ethers left
                var (nextCurrentRate,nextTrancheMaxTokensLeft) = getCurrentTokenPrice();

                if (nextTrancheMaxTokensLeft <= 0) {
                    tokenAmount = safeAdd(trancheMaxTokensLeft,safeDiv(1,10));
                    state =  State.Successful;
                    // Send change extra ether to user.
                    beneficiary.transfer(safeDiv(safeSubtract(tokenAmount,trancheMaxTokensLeft),currentRate));
                } else {
                    uint256 nextTokenAmount = safeMult(safeSubtract(msg.value,safeMult(trancheMaxTokensLeft,safeDiv(1,currentRate))),nextCurrentRate);
                    tokensDistributed =  safeAdd(tokensDistributed,nextTokenAmount);
                    tokenAmount = safeAdd(nextTokenAmount,safeAdd(trancheMaxTokensLeft,safeDiv(1,10)));
                }
            }
            else {
                tokensDistributed =  safeAdd(tokensDistributed,tokenAmount);
            }
        }

        trakToken.transfer(beneficiary,tokenAmount);
        // immediately transfer ether to fundsWallet
        forwardFunds();
    }

    function forwardFunds() internal {
        contractOwner.transfer(msg.value);
    }

    /// @dev Returns the current token rate , minimum ether needed and maximum tokens left in currenttranche
    function getCurrentTokenPrice() private constant returns (uint256 currentRate, uint256 maximumTokensLeft) {

        if (tokensDistributed < safeMult(1,tokensPerTranche) && (block.number < firstChangeBlock)) {
            //  return ( privateExchangeRate, minPriceInWeiForPre, safeSubtract(tokensPerTranche,tokensDistributed) );
            return ( privateExchangeRate, safeSubtract(tokensPerTranche,tokensDistributed) );
        }
        else if (tokensDistributed < safeMult(2,tokensPerTranche) && (block.number < secondChangeBlock)) {
            return ( firstExchangeRate, safeSubtract(safeMult(2,tokensPerTranche),tokensDistributed) );
        }
        else if (tokensDistributed < safeMult(3,tokensPerTranche) && (block.number < thirdChangeBlock)) {
            return ( secondExchangeRate, safeSubtract(safeMult(3,tokensPerTranche),tokensDistributed) );
        }
        else if (tokensDistributed < safeMult(4,tokensPerTranche) && (block.number < fundingEndBlock)) {
            return  (thirdExchangeRate,safeSubtract(safeMult(4,tokensPerTranche),tokensDistributed)  );
        }
        else if (tokensDistributed < safeMult(5,tokensPerTranche) && (block.number < fundingEndBlock)) {
            return  (fourthExchangeRate,safeSubtract(safeMult(5,tokensPerTranche),tokensDistributed)  );
        }
        else if (tokensDistributed <= safeMult(6,tokensPerTranche)) {
            return  (fifthExchangeRate,safeSubtract(safeMult(6,tokensPerTranche),tokensDistributed)  );
        }
    }


    function authorizeKyc(address[] addrs) external onlyOwner returns (bool success) {

        //@TODO  maximum batch size for uploading
        // @TODO amount of gas for a block of code - and will fail if that is exceeded
        uint arrayLength = addrs.length;

        for (uint x = 0; x < arrayLength; x++) {
            whitelistedContributors[addrs[x]] = true;
        }

        return true;
    }


    function withdrawWei () external onlyOwner {
        // send the eth to the project multisig wallet
        contractOwner.transfer(this.balance);
    }

    function updateFundingEndBlock(uint256 newFundingEndBlock)  external onlyOwner {
        require(newFundingEndBlock > fundingStartBlock);
        //require(newFundingEndBlock >= fundingEndBlock);
        fundingEndBlock = newFundingEndBlock;
    }


    // after ICO only owner can call this
    function burnRemainingToken(uint256 _value) external  onlyOwner isIcoFinished {
        //@TODO - check balance of address if no value passed
        require(_value > 0);
        trakToken.burn(_value);
    }

    // after ICO only owner can call this
    function withdrawRemainingToken(uint256 _value,address trakTokenAdmin)  external onlyOwner isIcoFinished {
        //@TODO - check balance of address if no value passed
        require(trakTokenAdmin != 0x0);
        require(_value > 0);
        trakToken.transfer(trakTokenAdmin,_value);
    }


    // after ICO only owner can call this
    function finalize() external  onlyOwner isIcoFinished  {
        state =  State.Closed;
        trakToken.finalize();
    }

    // after ICO only owner can call this
    function changeTokensWallet(address newAddress) external  onlyOwner  {
        require(newAddress != address(0));
        trakToken.changeTokensWallet(newAddress);
    }


    function removeContract ()  external onlyOwner atEndOfLifecycle {
        // msg.sender will receive all the ethers if this contract has ethers
        selfdestruct(msg.sender);
    }

    /// @param newAddress Address of new owner.
    function changeFundsWallet(address newAddress) external onlyOwner returns (bool)
    {
        require(newAddress != address(0));
        contractOwner = newAddress;
    }


    /// @dev Pauses the contract
    function pause() external onlyOwner inState(State.Fundraising) {
        // Move the contract to Paused state
        state =  State.Paused;
    }


    /// @dev Resume the contract
    function resume() external onlyOwner {
        // Move the contract out of the Paused state
        state =  State.Fundraising;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"creator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"thirdChangeBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensDistributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minPriceInWeiForIco","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"privateExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"trakTokenAdmin","type":"address"}],"name":"withdrawRemainingToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"trakToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondChangeBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawWei","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"thirdExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minPriceInWeiForPre","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"}],"name":"changeTokensWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"firstExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"authorizeKyc","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAddress","type":"address"}],"name":"changeFundsWallet","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnRemainingToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingEndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fourthExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingDurationInHours","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingMaximumTargetInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstChangeBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxPriceInWeiFromUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistedContributors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fifthExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerTranche","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newFundingEndBlock","type":"uint256"}],"name":"updateFundingEndBlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalRaisedInWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"removeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_fundsWallet","type":"address"},{"name":"_fundingStartBlock","type":"uint256"},{"name":"_firstInHours","type":"uint256"},{"name":"_secondInHours","type":"uint256"},{"name":"_thirdInHours","type":"uint256"},{"name":"_fundingDurationInHours","type":"uint256"},{"name":"_tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

606060405260008060006101000a81548160ff021916908360038111156200002357fe5b02179055506040805190810160405280600381526020017f312e3000000000000000000000000000000000000000000000000000000000008152506001908051906020019062000075929190620003e4565b506000600d5534156200008757600080fd5b60405160e080620022aa83398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050856200011b87620001018560d46200038f6401000000000262001ade176401000000009004565b620003c56401000000000262001b11176401000000009004565b1115156200012857600080fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008773ffffffffffffffffffffffffffffffffffffffff16141515620001d15786600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000213565b33600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b856006819055506200025c600654620002428760d46200038f6401000000000262001ade176401000000009004565b620003c56401000000000262001b11176401000000009004565b600781905550620002a46006546200028a8660d46200038f6401000000000262001ade176401000000009004565b620003c56401000000000262001b11176401000000009004565b600881905550620002ec600654620002d28560d46200038f6401000000000262001ade176401000000009004565b620003c56401000000000262001b11176401000000009004565b60098190555081600b819055506200033b600654620003218460d46200038f6401000000000262001ade176401000000009004565b620003c56401000000000262001b11176401000000009004565b600a8190555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505062000493565b60008082840290506000841480620003b25750828482811515620003af57fe5b04145b1515620003bb57fe5b8091505092915050565b6000808284019050838110151515620003da57fe5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200042757805160ff191683800117855562000458565b8280016001018555821562000458579182015b82811115620004575782518255916020019190600101906200043a565b5b5090506200046791906200046b565b5090565b6200049091905b808211156200048c57600081600090555060010162000472565b5090565b90565b611e0780620004a36000396000f3006060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f146101e3578063046f7da214610238578063148dd1011461024d578063152e84a7146102765780631dd8f0531461029f5780631eb5de94146102c85780632b7d13cc146102f15780632f885f79146103335780633125443d14610388578063313ce567146103b15780634bb278f3146103e05780635211ac2e146103f557806354fd4d501461040a57806358d3ce8a14610498578063634b3df9146104c15780636a734036146104ea5780636b0f02e61461052357806370d7a0e71461054c5780637d6f0d5f146105925780637ed9c734146105e35780638456cb591461060657806391b43d131461061b578063961a16f214610644578063a382aee21461066d578063a958ffc414610696578063aa367664146106bf578063b41e79d4146106e8578063b614213d14610711578063c19d93fb1461073a578063c7b850dd14610771578063ce606ee0146107c2578063d648a64714610817578063da85868e14610840578063e1ffdecb14610869578063e28b0d9a14610892578063ebcbee16146108b5578063ec8ac4d8146108de578063fe389e091461090c575b6101e133610921565b005b34156101ee57600080fd5b6101f6610de7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561024357600080fd5b61024b610e0d565b005b341561025857600080fd5b610260610e8e565b6040518082815260200191505060405180910390f35b341561028157600080fd5b610289610e94565b6040518082815260200191505060405180910390f35b34156102aa57600080fd5b6102b2610e9a565b6040518082815260200191505060405180910390f35b34156102d357600080fd5b6102db610ea6565b6040518082815260200191505060405180910390f35b34156102fc57600080fd5b610331600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610eac565b005b341561033e57600080fd5b61034661106f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561039357600080fd5b61039b611095565b6040518082815260200191505060405180910390f35b34156103bc57600080fd5b6103c461109b565b604051808260ff1660ff16815260200191505060405180910390f35b34156103eb57600080fd5b6103f36110a0565b005b341561040057600080fd5b610408611210565b005b341561041557600080fd5b61041d6112e7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045d578082015181840152602081019050610442565b50505050905090810190601f16801561048a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104a357600080fd5b6104ab611385565b6040518082815260200191505060405180910390f35b34156104cc57600080fd5b6104d461138b565b6040518082815260200191505060405180910390f35b34156104f557600080fd5b610521600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611397565b005b341561052e57600080fd5b610536611502565b6040518082815260200191505060405180910390f35b341561055757600080fd5b61057860048080359060200190820180359060200191909192905050611508565b604051808215151515815260200191505060405180910390f35b341561059d57600080fd5b6105c9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611617565b604051808215151515815260200191505060405180910390f35b34156105ee57600080fd5b61060460048080359060200190919050506116f7565b005b341561061157600080fd5b61061961185f565b005b341561062657600080fd5b61062e611915565b6040518082815260200191505060405180910390f35b341561064f57600080fd5b61065761191b565b6040518082815260200191505060405180910390f35b341561067857600080fd5b610680611921565b6040518082815260200191505060405180910390f35b34156106a157600080fd5b6106a9611927565b6040518082815260200191505060405180910390f35b34156106ca57600080fd5b6106d261192d565b6040518082815260200191505060405180910390f35b34156106f357600080fd5b6106fb61193b565b6040518082815260200191505060405180910390f35b341561071c57600080fd5b610724611941565b6040518082815260200191505060405180910390f35b341561074557600080fd5b61074d61194e565b6040518082600381111561075d57fe5b60ff16815260200191505060405180910390f35b341561077c57600080fd5b6107a8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611960565b604051808215151515815260200191505060405180910390f35b34156107cd57600080fd5b6107d5611980565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082257600080fd5b61082a6119a6565b6040518082815260200191505060405180910390f35b341561084b57600080fd5b6108536119ac565b6040518082815260200191505060405180910390f35b341561087457600080fd5b61087c6119b2565b6040518082815260200191505060405180910390f35b341561089d57600080fd5b6108b360048080359060200190919050506119c2565b005b34156108c057600080fd5b6108c8611a38565b6040518082815260200191505060405180910390f35b61090a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610921565b005b341561091757600080fd5b61091f611a3e565b005b600080600080600080600080600080600381111561093b57fe5b6000809054906101000a900460ff16600381111561095557fe5b14151561096157600080fd5b600654431015151561097257600080fd5b600a54431115151561098357600080fd5b690e1f0047abba4bd40000600c541115151561099e57600080fd5b6109b56003601260ff16600a0a62a7d8c002611ade565b600d5410806109c5575060095443105b156109e657670de0b6b3a764000034101515156109e157600080fd5b610a20565b6109fd6006601260ff16600a0a62a7d8c002611ade565b600d54111515610a1f576706f05b59d3b200003410151515610a1e57600080fd5b5b5b685150ae84a8cdf000003411151515610a3857600080fd5b60008a73ffffffffffffffffffffffffffffffffffffffff1614151515610a5e57600080fd5b60011515600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515610abd57600080fd5b610ac9600c5434611b11565b9750690e1f0047abba4bd40000881115610b8857610afe600c54610af9690e1f0047abba4bd40000600c54611b2f565b611b11565b600c81905550610b0c611b48565b509650610b2e610b28690e1f0047abba4bd40000600c54611b2f565b88611ade565b98508973ffffffffffffffffffffffffffffffffffffffff166108fc610b5e8a690e1f0047abba4bd40000611b2f565b9081150290604051600060405180830381858888f193505050501515610b8357600080fd5b610cfb565b610b94600c5434611b11565b600c81905550610ba2611b48565b95509550610bb03487611ade565b985084891115610ce757610bda600d54610bd587610bd06001600a611d5c565b611b11565b611b11565b600d81905550610be8611b48565b93509350600083111515610c8757610c0b85610c066001600a611d5c565b611b11565b985060026000806101000a81548160ff02191690836003811115610c2b57fe5b02179055508973ffffffffffffffffffffffffffffffffffffffff166108fc610c5d610c578c89611b2f565b89611d5c565b9081150290604051600060405180830381858888f193505050501515610c8257600080fd5b610ce2565b610cad610ca734610ca288610c9d60018c611d5c565b611ade565b611b2f565b85611ade565b9150610cbb600d5483611b11565b600d81905550610cdf82610cda87610cd56001600a611d5c565b611b11565b611b11565b98505b610cfa565b610cf3600d548a611b11565b600d819055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050610ddb611d77565b50505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6957600080fd5b60008060006101000a81548160ff02191690836003811115610e8757fe5b0217905550565b60095481565b600d5481565b6706f05b59d3b2000081565b61058c81565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0857600080fd5b690e1f0047abba4bd40000600c54101580610f245750600a5443115b80610f53575060026003811115610f3757fe5b6000809054906101000a900460ff166003811115610f5157fe5b145b1515610f5e57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610f8457600080fd5b600082111515610f9357600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561105757600080fd5b6102c65a03f1151561106857600080fd5b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b601281565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110fc57600080fd5b690e1f0047abba4bd40000600c541015806111185750600a5443115b8061114757506002600381111561112b57fe5b6000809054906101000a900460ff16600381111561114557fe5b145b151561115257600080fd5b60036000806101000a81548160ff0219169083600381111561117057fe5b0217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634bb278f36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156111fa57600080fd5b6102c65a03f1151561120b57600080fd5b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126c57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156112e557600080fd5b565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050505081565b61047681565b670de0b6b3a764000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561142f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a734036826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156114eb57600080fd5b6102c65a03f115156114fc57600080fd5b50505050565b61050981565b6000806000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156957600080fd5b848490509150600090505b8181101561160b57600160056000878785818110151561159057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611574565b60019250505092915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561167557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156116b157600080fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561175357600080fd5b690e1f0047abba4bd40000600c5410158061176f5750600a5443115b8061179e57506002600381111561178257fe5b6000809054906101000a900460ff16600381111561179c57fe5b145b15156117a957600080fd5b6000811115156117b857600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561184857600080fd5b6102c65a03f1151561185957600080fd5b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bb57600080fd5b60008060038111156118c957fe5b6000809054906101000a900460ff1660038111156118e357fe5b1415156118ef57600080fd5b60016000806101000a81548160ff0219169083600381111561190d57fe5b021790555050565b600a5481565b6104a981565b61045e81565b600b5481565b690e1f0047abba4bd4000081565b60075481565b685150ae84a8cdf0000081565b6000809054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b61045181565b601260ff16600a0a62a7d8c00281565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a1e57600080fd5b60065481111515611a2e57600080fd5b80600a8190555050565b600c5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9a57600080fd5b690e1f0047abba4bd40000600c54101580611aba5750619c40600a540143115b1515611ac557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b60008082840290506000841480611aff5750828482811515611afc57fe5b04145b1515611b0757fe5b8091505092915050565b6000808284019050838110151515611b2557fe5b8091505092915050565b6000818310151515611b3d57fe5b818303905092915050565b600080611b626001601260ff16600a0a62a7d8c002611ade565b600d54108015611b73575060075443105b15611b9c5761058c611b93601260ff16600a0a62a7d8c002600d54611b2f565b91509150611d58565b611bb36002601260ff16600a0a62a7d8c002611ade565b600d54108015611bc4575060085443105b15611bf757610509611bee611be66002601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611c0e6003601260ff16600a0a62a7d8c002611ade565b600d54108015611c1f575060095443105b15611c52576104a9611c49611c416003601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611c696004601260ff16600a0a62a7d8c002611ade565b600d54108015611c7a5750600a5443105b15611cad57610476611ca4611c9c6004601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611cc46005601260ff16600a0a62a7d8c002611ade565b600d54108015611cd55750600a5443105b15611d085761045e611cff611cf76005601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611d1f6006601260ff16600a0a62a7d8c002611ade565b600d54111515611d5757610451611d4e611d466006601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b5b9091565b6000808284811515611d6a57fe5b0490508091505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611dd957600080fd5b5600a165627a7a723058205a8d347f2d3a48e298ffd43fefaa39803672cc26d7093b78a4cc1fbe24bde55f002900000000000000000000000054011a0d6252f50790acaf4340d9e46737ca0ab9000000000000000000000000000000000000000000000000000000000048527600000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000054800000000000000000000000012759512d326303b45f1cec8f7b6fd96f387778e

Deployed Bytecode

0x6060604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806302d05d3f146101e3578063046f7da214610238578063148dd1011461024d578063152e84a7146102765780631dd8f0531461029f5780631eb5de94146102c85780632b7d13cc146102f15780632f885f79146103335780633125443d14610388578063313ce567146103b15780634bb278f3146103e05780635211ac2e146103f557806354fd4d501461040a57806358d3ce8a14610498578063634b3df9146104c15780636a734036146104ea5780636b0f02e61461052357806370d7a0e71461054c5780637d6f0d5f146105925780637ed9c734146105e35780638456cb591461060657806391b43d131461061b578063961a16f214610644578063a382aee21461066d578063a958ffc414610696578063aa367664146106bf578063b41e79d4146106e8578063b614213d14610711578063c19d93fb1461073a578063c7b850dd14610771578063ce606ee0146107c2578063d648a64714610817578063da85868e14610840578063e1ffdecb14610869578063e28b0d9a14610892578063ebcbee16146108b5578063ec8ac4d8146108de578063fe389e091461090c575b6101e133610921565b005b34156101ee57600080fd5b6101f6610de7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561024357600080fd5b61024b610e0d565b005b341561025857600080fd5b610260610e8e565b6040518082815260200191505060405180910390f35b341561028157600080fd5b610289610e94565b6040518082815260200191505060405180910390f35b34156102aa57600080fd5b6102b2610e9a565b6040518082815260200191505060405180910390f35b34156102d357600080fd5b6102db610ea6565b6040518082815260200191505060405180910390f35b34156102fc57600080fd5b610331600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610eac565b005b341561033e57600080fd5b61034661106f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561039357600080fd5b61039b611095565b6040518082815260200191505060405180910390f35b34156103bc57600080fd5b6103c461109b565b604051808260ff1660ff16815260200191505060405180910390f35b34156103eb57600080fd5b6103f36110a0565b005b341561040057600080fd5b610408611210565b005b341561041557600080fd5b61041d6112e7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045d578082015181840152602081019050610442565b50505050905090810190601f16801561048a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104a357600080fd5b6104ab611385565b6040518082815260200191505060405180910390f35b34156104cc57600080fd5b6104d461138b565b6040518082815260200191505060405180910390f35b34156104f557600080fd5b610521600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611397565b005b341561052e57600080fd5b610536611502565b6040518082815260200191505060405180910390f35b341561055757600080fd5b61057860048080359060200190820180359060200191909192905050611508565b604051808215151515815260200191505060405180910390f35b341561059d57600080fd5b6105c9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611617565b604051808215151515815260200191505060405180910390f35b34156105ee57600080fd5b61060460048080359060200190919050506116f7565b005b341561061157600080fd5b61061961185f565b005b341561062657600080fd5b61062e611915565b6040518082815260200191505060405180910390f35b341561064f57600080fd5b61065761191b565b6040518082815260200191505060405180910390f35b341561067857600080fd5b610680611921565b6040518082815260200191505060405180910390f35b34156106a157600080fd5b6106a9611927565b6040518082815260200191505060405180910390f35b34156106ca57600080fd5b6106d261192d565b6040518082815260200191505060405180910390f35b34156106f357600080fd5b6106fb61193b565b6040518082815260200191505060405180910390f35b341561071c57600080fd5b610724611941565b6040518082815260200191505060405180910390f35b341561074557600080fd5b61074d61194e565b6040518082600381111561075d57fe5b60ff16815260200191505060405180910390f35b341561077c57600080fd5b6107a8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611960565b604051808215151515815260200191505060405180910390f35b34156107cd57600080fd5b6107d5611980565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561082257600080fd5b61082a6119a6565b6040518082815260200191505060405180910390f35b341561084b57600080fd5b6108536119ac565b6040518082815260200191505060405180910390f35b341561087457600080fd5b61087c6119b2565b6040518082815260200191505060405180910390f35b341561089d57600080fd5b6108b360048080359060200190919050506119c2565b005b34156108c057600080fd5b6108c8611a38565b6040518082815260200191505060405180910390f35b61090a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610921565b005b341561091757600080fd5b61091f611a3e565b005b600080600080600080600080600080600381111561093b57fe5b6000809054906101000a900460ff16600381111561095557fe5b14151561096157600080fd5b600654431015151561097257600080fd5b600a54431115151561098357600080fd5b690e1f0047abba4bd40000600c541115151561099e57600080fd5b6109b56003601260ff16600a0a62a7d8c002611ade565b600d5410806109c5575060095443105b156109e657670de0b6b3a764000034101515156109e157600080fd5b610a20565b6109fd6006601260ff16600a0a62a7d8c002611ade565b600d54111515610a1f576706f05b59d3b200003410151515610a1e57600080fd5b5b5b685150ae84a8cdf000003411151515610a3857600080fd5b60008a73ffffffffffffffffffffffffffffffffffffffff1614151515610a5e57600080fd5b60011515600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515610abd57600080fd5b610ac9600c5434611b11565b9750690e1f0047abba4bd40000881115610b8857610afe600c54610af9690e1f0047abba4bd40000600c54611b2f565b611b11565b600c81905550610b0c611b48565b509650610b2e610b28690e1f0047abba4bd40000600c54611b2f565b88611ade565b98508973ffffffffffffffffffffffffffffffffffffffff166108fc610b5e8a690e1f0047abba4bd40000611b2f565b9081150290604051600060405180830381858888f193505050501515610b8357600080fd5b610cfb565b610b94600c5434611b11565b600c81905550610ba2611b48565b95509550610bb03487611ade565b985084891115610ce757610bda600d54610bd587610bd06001600a611d5c565b611b11565b611b11565b600d81905550610be8611b48565b93509350600083111515610c8757610c0b85610c066001600a611d5c565b611b11565b985060026000806101000a81548160ff02191690836003811115610c2b57fe5b02179055508973ffffffffffffffffffffffffffffffffffffffff166108fc610c5d610c578c89611b2f565b89611d5c565b9081150290604051600060405180830381858888f193505050501515610c8257600080fd5b610ce2565b610cad610ca734610ca288610c9d60018c611d5c565b611ade565b611b2f565b85611ade565b9150610cbb600d5483611b11565b600d81905550610cdf82610cda87610cd56001600a611d5c565b611b11565b611b11565b98505b610cfa565b610cf3600d548a611b11565b600d819055505b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8b8b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1515610dbf57600080fd5b6102c65a03f11515610dd057600080fd5b505050610ddb611d77565b50505050505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e6957600080fd5b60008060006101000a81548160ff02191690836003811115610e8757fe5b0217905550565b60095481565b600d5481565b6706f05b59d3b2000081565b61058c81565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0857600080fd5b690e1f0047abba4bd40000600c54101580610f245750600a5443115b80610f53575060026003811115610f3757fe5b6000809054906101000a900460ff166003811115610f5157fe5b145b1515610f5e57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610f8457600080fd5b600082111515610f9357600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561105757600080fd5b6102c65a03f1151561106857600080fd5b5050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60085481565b601281565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110fc57600080fd5b690e1f0047abba4bd40000600c541015806111185750600a5443115b8061114757506002600381111561112b57fe5b6000809054906101000a900460ff16600381111561114557fe5b145b151561115257600080fd5b60036000806101000a81548160ff0219169083600381111561117057fe5b0217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634bb278f36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156111fa57600080fd5b6102c65a03f1151561120b57600080fd5b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561126c57600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156112e557600080fd5b565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561137d5780601f106113525761010080835404028352916020019161137d565b820191906000526020600020905b81548152906001019060200180831161136057829003601f168201915b505050505081565b61047681565b670de0b6b3a764000081565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113f357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561142f57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a734036826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156114eb57600080fd5b6102c65a03f115156114fc57600080fd5b50505050565b61050981565b6000806000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156957600080fd5b848490509150600090505b8181101561160b57600160056000878785818110151561159057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611574565b60019250505092915050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561167557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156116b157600080fd5b81600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561175357600080fd5b690e1f0047abba4bd40000600c5410158061176f5750600a5443115b8061179e57506002600381111561178257fe5b6000809054906101000a900460ff16600381111561179c57fe5b145b15156117a957600080fd5b6000811115156117b857600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561184857600080fd5b6102c65a03f1151561185957600080fd5b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118bb57600080fd5b60008060038111156118c957fe5b6000809054906101000a900460ff1660038111156118e357fe5b1415156118ef57600080fd5b60016000806101000a81548160ff0219169083600381111561190d57fe5b021790555050565b600a5481565b6104a981565b61045e81565b600b5481565b690e1f0047abba4bd4000081565b60075481565b685150ae84a8cdf0000081565b6000809054906101000a900460ff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b61045181565b601260ff16600a0a62a7d8c00281565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a1e57600080fd5b60065481111515611a2e57600080fd5b80600a8190555050565b600c5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a9a57600080fd5b690e1f0047abba4bd40000600c54101580611aba5750619c40600a540143115b1515611ac557600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16ff5b60008082840290506000841480611aff5750828482811515611afc57fe5b04145b1515611b0757fe5b8091505092915050565b6000808284019050838110151515611b2557fe5b8091505092915050565b6000818310151515611b3d57fe5b818303905092915050565b600080611b626001601260ff16600a0a62a7d8c002611ade565b600d54108015611b73575060075443105b15611b9c5761058c611b93601260ff16600a0a62a7d8c002600d54611b2f565b91509150611d58565b611bb36002601260ff16600a0a62a7d8c002611ade565b600d54108015611bc4575060085443105b15611bf757610509611bee611be66002601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611c0e6003601260ff16600a0a62a7d8c002611ade565b600d54108015611c1f575060095443105b15611c52576104a9611c49611c416003601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611c696004601260ff16600a0a62a7d8c002611ade565b600d54108015611c7a5750600a5443105b15611cad57610476611ca4611c9c6004601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611cc46005601260ff16600a0a62a7d8c002611ade565b600d54108015611cd55750600a5443105b15611d085761045e611cff611cf76005601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b611d1f6006601260ff16600a0a62a7d8c002611ade565b600d54111515611d5757610451611d4e611d466006601260ff16600a0a62a7d8c002611ade565b600d54611b2f565b91509150611d58565b5b9091565b6000808284811515611d6a57fe5b0490508091505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515611dd957600080fd5b5600a165627a7a723058205a8d347f2d3a48e298ffd43fefaa39803672cc26d7093b78a4cc1fbe24bde55f0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000054011a0d6252f50790acaf4340d9e46737ca0ab9000000000000000000000000000000000000000000000000000000000048527600000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000054800000000000000000000000012759512d326303b45f1cec8f7b6fd96f387778e

-----Decoded View---------------
Arg [0] : _fundsWallet (address): 0x54011a0D6252f50790acaf4340D9e46737ca0ab9
Arg [1] : _fundingStartBlock (uint256): 4739702
Arg [2] : _firstInHours (uint256): 425
Arg [3] : _secondInHours (uint256): 708
Arg [4] : _thirdInHours (uint256): 992
Arg [5] : _fundingDurationInHours (uint256): 1352
Arg [6] : _tokenAddress (address): 0x12759512D326303B45f1ceC8F7B6fd96F387778E

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 00000000000000000000000054011a0d6252f50790acaf4340d9e46737ca0ab9
Arg [1] : 0000000000000000000000000000000000000000000000000000000000485276
Arg [2] : 00000000000000000000000000000000000000000000000000000000000001a9
Arg [3] : 00000000000000000000000000000000000000000000000000000000000002c4
Arg [4] : 00000000000000000000000000000000000000000000000000000000000003e0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000548
Arg [6] : 00000000000000000000000012759512d326303b45f1cec8f7b6fd96f387778e


Swarm Source

bzzr://5a8d347f2d3a48e298ffd43fefaa39803672cc26d7093b78a4cc1fbe24bde55f

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.