Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 20 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x372427ce1d7cda259597896d3433243c73774724at txn 0xbd9b9ecc47901d638d56d6b29cae5af38a25e0f69ebcdffcf71573b40fb48981
Token Balance:
 Latest 20 txns

TxHash Age From To Value [TxFee]
0xc33a783cd0c584cbaef2dd28df5b30cc70b973a2bf581be68d55d71d72bfd5ca68 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.000451395
0x49656ec1eae2911475aaa090d781e5ef9b2945537ab2fac24bce9ccb3b2aee8768 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002353005
0x589fd125ec00bea94e665d879454b1e85d7d7d3fc62bccc5cf736598fa081bc068 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0x8358c2890cdc8245ef0fa96da1082a22cf3cfa69f5ee463f6131e35d9b80631668 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002578005
0x082a9b4a683f25396a3db677cd2adb38e246eea20d0962113e82d590c53ec2d868 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0xf7474302b5f6cd45f5318712ef2ea82f05e140cc623fc14660b11d57f512a86368 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002352045
0x822174a73b89e077d066705a2ca2d53e0cb022ce799a577180a3df5aa592c53368 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002578005
0xab9a65e25da52be7c3f9acb7d0f44dd2b9dfbcdaf7b5b10f213c0691571b5a1868 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0x1c720de8945195f5ff3937e66c4ab65282fb739cfa80fbf8b63cc44096a7468d68 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002578005
0xb3fbc99acc6e0592958149ac144f541566463fc81c3da0d19f8cd2606d82556868 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002578005
0x4dd5269c369ecb1c80940bb9eece81aad111898b5532d0a1a9525b7abdbfb62d68 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0x462145f755638ec62c40e4e790b2f83ff426c4277d3772662d42cf3c0ef0a5ad68 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0x0f4fe6c734a7ff8a3d81bdedef7b6db7a9b197cdbc586aacfba3871a1dd9b05268 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0xfd90da85e72385ead08cc6cd26c5598063c1f8ef209151abdd12a969755a974868 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0x16ef3205a2363d92115935086c6eea55cfa1c191ac2904b98a8e0bfc48e1690268 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002577045
0x423b0379aa99ea9ba03526ec1a9eed1308ea85d854781817a860186a451fd6ec68 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002578005
0x19c26bf69388b687138898b903e7eb1829c85c01bf292e5b12f769c3d74ad52b68 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.002578005
0x13465995fd7053ecc55fc9b7875d01e92e75f4595424ebafce0562e08fb8900768 days 16 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.003028005
0x1f915429219029d85a458e48e8cbad5454a7d00e02dbf64840109a329148966868 days 17 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN   0xd6d79f85d8cb962b15181aac0c1545d61b6c56720 Ether0.00029694
0xbd9b9ecc47901d638d56d6b29cae5af38a25e0f69ebcdffcf71573b40fb4898168 days 19 hrs ago0x372427ce1d7cda259597896d3433243c73774724  IN    Contract Creation0 Ether0.01275254
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: AdvisorsVesting
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.24;

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * See https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address _who) public view returns (uint256);
  function transfer(address _to, uint256 _value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

// File: openzeppelin-solidity/contracts/token/ERC20/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address _owner, address _spender)
    public view returns (uint256);

  function transferFrom(address _from, address _to, uint256 _value)
    public returns (bool);

  function approve(address _spender, uint256 _value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (_a == 0) {
      return 0;
    }

    c = _a * _b;
    assert(c / _a == _b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // assert(_b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
    return _a / _b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    assert(_b <= _a);
    return _a - _b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    c = _a + _b;
    assert(c >= _a);
    return c;
  }
}

// File: contracts/AdvisorsVesting.sol

contract AdvisorsVesting {
    using SafeMath for uint256;
    
    modifier onlyV12MultiSig {
        require(msg.sender == v12MultiSig, "not owner");
        _;
    }

    modifier onlyValidAddress(address _recipient) {
        require(_recipient != address(0) && _recipient != address(this) && _recipient != address(token), "not valid _recipient");
        _;
    }

    uint256 constant internal SECONDS_PER_DAY = 86400;

    struct Grant {
        uint256 startTime;
        uint256 amount;
        uint256 vestingDuration;
        uint256 vestingCliff;
        uint256 daysClaimed;
        uint256 totalClaimed;
        address recipient;
        bool isActive;
    }

    event GrantAdded(address indexed recipient, uint256 vestingId);
    event GrantTokensClaimed(address indexed recipient, uint256 amountClaimed);
    event GrantRemoved(address recipient, uint256 amountVested, uint256 amountNotVested);
    event ChangedMultisig(address multisig);

    ERC20 public token;
    
    mapping (uint256 => Grant) public tokenGrants;

    address public v12MultiSig;
    uint256 public totalVestingCount;

    constructor(ERC20 _token) public {
        require(address(_token) != address(0));
        v12MultiSig = msg.sender;
        token = _token;
    }
    
    function addTokenGrant(
        address _recipient,
        uint256 _startTime,
        uint256 _amount,
        uint256 _vestingDurationInDays,
        uint256 _vestingCliffInDays    
    ) 
        external
        onlyV12MultiSig
        onlyValidAddress(_recipient)
    {
        require(_vestingCliffInDays <= 10*365, "more than 10 years");
        require(_vestingDurationInDays <= 25*365, "more than 25 years");
        require(_vestingDurationInDays >= _vestingCliffInDays, "Duration < Cliff");
        
        uint256 amountVestedPerDay = _amount.div(_vestingDurationInDays);
        require(amountVestedPerDay > 0, "amountVestedPerDay > 0");

        // Transfer the grant tokens under the control of the vesting contract
        require(token.transferFrom(v12MultiSig, address(this), _amount), "transfer failed");

        Grant memory grant = Grant({
            startTime: _startTime == 0 ? currentTime() : _startTime,
            amount: _amount,
            vestingDuration: _vestingDurationInDays,
            vestingCliff: _vestingCliffInDays,
            daysClaimed: 0,
            totalClaimed: 0,
            recipient: _recipient,
            isActive: true
        });
        tokenGrants[totalVestingCount] = grant;
        emit GrantAdded(_recipient, totalVestingCount);
        totalVestingCount++;
    }

    function getActiveGrants(address _recipient) public view returns(uint256[]){
        uint256 i = 0;
        uint256[] memory recipientGrants = new uint256[](totalVestingCount);
        uint256 totalActive = 0;
        // total amount of vesting grants assumed to be less than 100
        for(i; i < totalVestingCount; i++){
            if(tokenGrants[i].isActive && tokenGrants[i].recipient == _recipient){
                recipientGrants[totalActive] = i;
                totalActive++;
            }
        }
        assembly {
            mstore(recipientGrants, totalActive)
        }
        return recipientGrants;
    }

    /// @notice Calculate the vested and unclaimed months and tokens available for `_grantId` to claim
    /// Due to rounding errors once grant duration is reached, returns the entire left grant amount
    /// Returns (0, 0) if cliff has not been reached
    function calculateGrantClaim(uint256 _grantId) public view returns (uint256, uint256) {
        Grant storage tokenGrant = tokenGrants[_grantId];

        // For grants created with a future start date, that hasn't been reached, return 0, 0
        if (currentTime() < tokenGrant.startTime) {
            return (0, 0);
        }

        // Check cliff was reached
        uint elapsedTime = currentTime().sub(tokenGrant.startTime);
        uint elapsedDays = elapsedTime.div(SECONDS_PER_DAY);
        
        if (elapsedDays < tokenGrant.vestingCliff) {
            return (elapsedDays, 0);
        }

        // If over vesting duration, all tokens vested
        if (elapsedDays >= tokenGrant.vestingDuration) {
            uint256 remainingGrant = tokenGrant.amount.sub(tokenGrant.totalClaimed);
            return (tokenGrant.vestingDuration, remainingGrant);
        } else {
            uint256 daysVested = elapsedDays.sub(tokenGrant.daysClaimed);
            uint256 amountVestedPerDay = tokenGrant.amount.div(uint256(tokenGrant.vestingDuration));
            uint256 amountVested = uint256(daysVested.mul(amountVestedPerDay));
            return (daysVested, amountVested);
        }
    }

    /// @notice Allows a grant recipient to claim their vested tokens. Errors if no tokens have vested
    /// It is advised recipients check they are entitled to claim via `calculateGrantClaim` before calling this
    function claimVestedTokens(uint256 _grantId) external {
        uint256 daysVested;
        uint256 amountVested;
        (daysVested, amountVested) = calculateGrantClaim(_grantId);
        require(amountVested > 0, "amountVested is 0");

        Grant storage tokenGrant = tokenGrants[_grantId];
        tokenGrant.daysClaimed = tokenGrant.daysClaimed.add(daysVested);
        tokenGrant.totalClaimed = tokenGrant.totalClaimed.add(amountVested);
        
        require(token.transfer(tokenGrant.recipient, amountVested), "no tokens");
        emit GrantTokensClaimed(tokenGrant.recipient, amountVested);
    }

    /// @notice Terminate token grant transferring all vested tokens to the `_grantId`
    /// and returning all non-vested tokens to the V12 MultiSig
    /// Secured to the V12 MultiSig only
    /// @param _grantId grantId of the token grant recipient
    function removeTokenGrant(uint256 _grantId) 
        external 
        onlyV12MultiSig
    {
        Grant storage tokenGrant = tokenGrants[_grantId];
        require(tokenGrant.isActive, "is not active");
        address recipient = tokenGrant.recipient;
        uint256 daysVested;
        uint256 amountVested;
        (daysVested, amountVested) = calculateGrantClaim(_grantId);

        uint256 amountNotVested = (tokenGrant.amount.sub(tokenGrant.totalClaimed)).sub(amountVested);

        require(token.transfer(recipient, amountVested));
        require(token.transfer(v12MultiSig, amountNotVested));

        tokenGrant.startTime = 0;
        tokenGrant.amount = 0;
        tokenGrant.vestingDuration = 0;
        tokenGrant.vestingCliff = 0;
        tokenGrant.daysClaimed = 0;
        tokenGrant.totalClaimed = 0;
        tokenGrant.recipient = address(0);
        tokenGrant.isActive = false;

        emit GrantRemoved(recipient, amountVested, amountNotVested);
    }

    function currentTime() public view returns(uint256) {
        return block.timestamp;
    }

    function tokensVestedPerDay(uint256 _grantId) public view returns(uint256) {
        Grant storage tokenGrant = tokenGrants[_grantId];
        return tokenGrant.amount.div(uint256(tokenGrant.vestingDuration));
    }

    function changeMultiSig(address _newMultisig) 
        external 
        onlyV12MultiSig
        onlyValidAddress(_newMultisig)
    {
        v12MultiSig = _newMultisig;
        emit ChangedMultisig(_newMultisig);
    }

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_newMultisig","type":"address"}],"name":"changeMultiSig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_grantId","type":"uint256"}],"name":"calculateGrantClaim","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_grantId","type":"uint256"}],"name":"removeTokenGrant","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenGrants","outputs":[{"name":"startTime","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"vestingDuration","type":"uint256"},{"name":"vestingCliff","type":"uint256"},{"name":"daysClaimed","type":"uint256"},{"name":"totalClaimed","type":"uint256"},{"name":"recipient","type":"address"},{"name":"isActive","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_grantId","type":"uint256"}],"name":"claimVestedTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_recipient","type":"address"}],"name":"getActiveGrants","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalVestingCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"v12MultiSig","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_grantId","type":"uint256"}],"name":"tokensVestedPerDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_startTime","type":"uint256"},{"name":"_amount","type":"uint256"},{"name":"_vestingDurationInDays","type":"uint256"},{"name":"_vestingCliffInDays","type":"uint256"}],"name":"addTokenGrant","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"recipient","type":"address"},{"indexed":false,"name":"vestingId","type":"uint256"}],"name":"GrantAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"recipient","type":"address"},{"indexed":false,"name":"amountClaimed","type":"uint256"}],"name":"GrantTokensClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amountVested","type":"uint256"},{"indexed":false,"name":"amountNotVested","type":"uint256"}],"name":"GrantRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"multisig","type":"address"}],"name":"ChangedMultisig","type":"event"}]

  Contract Creation Code Switch To Opcodes View
608060405234801561001057600080fd5b506040516020806112058339810160405251600160a060020a038116151561003757600080fd5b60028054600160a060020a0319908116331790915560008054600160a060020a039390931692909116919091179055611190806100756000396000f3006080604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632902a0ca81146100be57806332b1c5b7146100e15780636f1b526d146101125780636fc559bb1461012a5780637935510b1461018e5780638bf1ad4c146101a657806399d508c014610217578063d18e81b31461023e578063d531ebc014610253578063f09dafb214610284578063f601e6c61461029c578063fc0c546a146102c9575b600080fd5b3480156100ca57600080fd5b506100df600160a060020a03600435166102de565b005b3480156100ed57600080fd5b506100f9600435610434565b6040805192835260208301919091528051918290030190f35b34801561011e57600080fd5b506100df600435610547565b34801561013657600080fd5b50610142600435610867565b604080519889526020890197909752878701959095526060870193909352608086019190915260a0850152600160a060020a031660c0840152151560e083015251908190036101000190f35b34801561019a57600080fd5b506100df6004356108c9565b3480156101b257600080fd5b506101c7600160a060020a0360043516610aba565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102035781810151838201526020016101eb565b505050509050019250505060405180910390f35b34801561022357600080fd5b5061022c610b8e565b60408051918252519081900360200190f35b34801561024a57600080fd5b5061022c610b94565b34801561025f57600080fd5b50610268610b98565b60408051600160a060020a039092168252519081900360200190f35b34801561029057600080fd5b5061022c600435610ba7565b3480156102a857600080fd5b506100df600160a060020a0360043516602435604435606435608435610bd9565b3480156102d557600080fd5b506102686110a2565b600254600160a060020a03163314610340576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b80600160a060020a038116158015906103625750600160a060020a0381163014155b801561037c5750600054600160a060020a03828116911614155b15156103d2576040805160e560020a62461bcd02815260206004820152601460248201527f6e6f742076616c6964205f726563697069656e74000000000000000000000000604482015290519081900360640190fd5b60028054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f1095c9869752f7f59b0736661c1ccc9e0314e35c10af8ee5482f57836852f2079181900360200190a15050565b6000818152600160205260408120805482919082908190819081908190819061045b610b94565b101561046d576000985088975061053b565b86546104879061047b610b94565b9063ffffffff6110b116565b955061049c866201518063ffffffff6110c816565b945086600301548510156104b85793975060009650879361053b565b600287015485106104ed57600587015460018801546104dc9163ffffffff6110b116565b93508660020154849850985061053b565b600487015461050390869063ffffffff6110b116565b9250610520876002015488600101546110c890919063ffffffff16565b9150610532838363ffffffff6110dd16565b90508281985098505b50505050505050915091565b6002546000908190819081908190600160a060020a031633146105b4576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000868152600160205260409020600681015490955074010000000000000000000000000000000000000000900460ff16151561063b576040805160e560020a62461bcd02815260206004820152600d60248201527f6973206e6f742061637469766500000000000000000000000000000000000000604482015290519081900360640190fd5b6006850154600160a060020a0316935061065486610434565b6005870154600188015492955090935061067a91849161047b919063ffffffff6110b116565b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201889052915194955091169263a9059cbb92604480840193602093929083900390910190829087803b1580156106ed57600080fd5b505af1158015610701573d6000803e3d6000fd5b505050506040513d602081101561071757600080fd5b5051151561072457600080fd5b60008054600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018690529051919092169263a9059cbb92604480820193602093909283900390910190829087803b15801561079957600080fd5b505af11580156107ad573d6000803e3d6000fd5b505050506040513d60208110156107c357600080fd5b505115156107d057600080fd5b600080865560018601819055600286018190556003860181905560048601819055600586015560068501805474ffffffffffffffffffffffffffffffffffffffffff1916905560408051600160a060020a03861681526020810184905280820183905290517f8f1462bc75233ee60d368eb1925fc2a7f205e6a8ef562c9bdf9c06db8b41aa769181900360600190a1505050505050565b600160208190526000918252604090912080549181015460028201546003830154600484015460058501546006909501549394929391929091600160a060020a0381169074010000000000000000000000000000000000000000900460ff1688565b60008060006108d784610434565b909350915060008211610934576040805160e560020a62461bcd02815260206004820152601160248201527f616d6f756e745665737465642069732030000000000000000000000000000000604482015290519081900360640190fd5b5060008381526001602052604090206004810154610958908463ffffffff61110616565b60048201556005810154610972908363ffffffff61110616565b6005820155600080546006830154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018790529051919092169263a9059cbb92604480820193602093909283900390910190829087803b1580156109ee57600080fd5b505af1158015610a02573d6000803e3d6000fd5b505050506040513d6020811015610a1857600080fd5b50511515610a70576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f20746f6b656e730000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6006810154604080518481529051600160a060020a03909216917fc6cbb4aa8681b18644bf64921eea8f2b9f44cbd58d64fc07a110bfccc20382969181900360200190a250505050565b6060600060606000809250600354604051908082528060200260200182016040528015610af1578160200160208202803883390190505b509150600090505b600354831015610b855760008381526001602052604090206006015474010000000000000000000000000000000000000000900460ff168015610b585750600083815260016020526040902060060154600160a060020a038681169116145b15610b7a57828282815181101515610b6c57fe5b602090810290910101526001015b600190920191610af9565b81529392505050565b60035481565b4290565b600254600160a060020a031681565b600081815260016020819052604082206002810154918101549091610bd2919063ffffffff6110c816565b9392505050565b6000610be3611113565b600254600160a060020a03163314610c45576040805160e560020a62461bcd02815260206004820152600960248201527f6e6f74206f776e65720000000000000000000000000000000000000000000000604482015290519081900360640190fd5b86600160a060020a03811615801590610c675750600160a060020a0381163014155b8015610c815750600054600160a060020a03828116911614155b1515610cd7576040805160e560020a62461bcd02815260206004820152601460248201527f6e6f742076616c6964205f726563697069656e74000000000000000000000000604482015290519081900360640190fd5b610e42841115610d31576040805160e560020a62461bcd02815260206004820152601260248201527f6d6f7265207468616e2031302079656172730000000000000000000000000000604482015290519081900360640190fd5b6123a5851115610d8b576040805160e560020a62461bcd02815260206004820152601260248201527f6d6f7265207468616e2032352079656172730000000000000000000000000000604482015290519081900360640190fd5b83851015610de3576040805160e560020a62461bcd02815260206004820152601060248201527f4475726174696f6e203c20436c69666600000000000000000000000000000000604482015290519081900360640190fd5b610df3868663ffffffff6110c816565b925060008311610e4d576040805160e560020a62461bcd02815260206004820152601660248201527f616d6f756e74566573746564506572446179203e203000000000000000000000604482015290519081900360640190fd5b60008054600254604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152306024820152604481018b9052905191909216926323b872dd92606480820193602093909283900390910190829087803b158015610ec857600080fd5b505af1158015610edc573d6000803e3d6000fd5b505050506040513d6020811015610ef257600080fd5b50511515610f4a576040805160e560020a62461bcd02815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b6101006040519081016040528088600014610f655788610f6d565b610f6d610b94565b8152602001878152602001868152602001858152602001600081526020016000815260200189600160a060020a0316815260200160011515815250915081600160006003548152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a815481600160a060020a030219169083600160a060020a0316021790555060e08201518160060160146101000a81548160ff02191690831515021790555090505087600160a060020a03167f9d2a1eab91557a277ec725fe26546609d5a33a550c3f3476982ee177252be8f46003546040518082815260200191505060405180910390a25050600380546001019055505050505050565b600054600160a060020a031681565b6000828211156110bd57fe5b508082035b92915050565b600081838115156110d557fe5b049392505050565b60008215156110ee575060006110c2565b508181028183828115156110fe57fe5b04146110c257fe5b818101828110156110c257fe5b610100604051908101604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000600160a060020a0316815260200160001515815250905600a165627a7a7230582060c9e47f8fa36499cf1bbf88cf16cead0139a710f13abba2476c5e557dd82f620029000000000000000000000000cc394f10545aeef24483d2347b32a34a44f20e6f

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cc394f10545aeef24483d2347b32a34a44f20e6f


   Swarm Source:
bzzr://60c9e47f8fa36499cf1bbf88cf16cead0139a710f13abba2476c5e557dd82f62

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.