ETH Price: $2,290.13 (+1.14%)

Contract

0x74a492720Ab2Cf59261B14bC89E78f8147A96F61
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer126440992021-06-16 7:14:281179 days ago1623827668IN
VotesPlatformToken
0 ETH0.0004046211
Transfer82571482019-07-31 7:41:551865 days ago1564558915IN
VotesPlatformToken
0 ETH0.000190085.21875
Approve60421282018-07-28 0:06:552234 days ago1532736415IN
VotesPlatformToken
0 ETH0.000182524
Approve60421242018-07-28 0:06:102234 days ago1532736370IN
VotesPlatformToken
0 ETH0.0000251
Transfer60420362018-07-27 23:46:092234 days ago1532735169IN
VotesPlatformToken
0 ETH0.0014933841
Approve59966982018-07-20 7:09:322241 days ago1532070572IN
VotesPlatformToken
0 ETH0.0006854415
Transfer59763002018-07-16 19:07:392245 days ago1531768059IN
VotesPlatformToken
0 ETH0.0008757124
Approve58656132018-06-27 22:05:032264 days ago1530137103IN
VotesPlatformToken
0 ETH0.000182784
Transfer58655902018-06-27 21:58:292264 days ago1530136709IN
VotesPlatformToken
0 ETH0.00149641
Refund Presale58578102018-06-26 14:03:182265 days ago1530021798IN
VotesPlatformToken
0 ETH0.0009180341
Approve57881312018-06-14 15:34:412277 days ago1528990481IN
VotesPlatformToken
0 ETH0.000182784
Transfer57881162018-06-14 15:31:312277 days ago1528990291IN
VotesPlatformToken
0 ETH0.0021892860
Transfer57132622018-06-01 9:54:442290 days ago1527846884IN
VotesPlatformToken
0 ETH0.0007723215
Transfer55805102018-05-08 23:42:162314 days ago1525822936IN
VotesPlatformToken
0 ETH0.000182445
Approve55762332018-05-08 5:45:102315 days ago1525758310IN
VotesPlatformToken
0 ETH0.000182784
Approve55137962018-04-27 8:18:502325 days ago1524817130IN
VotesPlatformToken
0 ETH0.000182784
Transfer54153322018-04-10 12:38:042342 days ago1523363884IN
VotesPlatformToken
0 ETH0.0007723215
Approve53432372018-03-29 13:39:102354 days ago1522330750IN
VotesPlatformToken
0 ETH0.0023398699
Approve53432372018-03-29 13:39:102354 days ago1522330750IN
VotesPlatformToken
0 ETH0.0027417660
Transfer53415182018-03-29 6:36:512354 days ago1522305411IN
VotesPlatformToken
0 ETH0.001824450
Transfer53362692018-03-28 9:30:012355 days ago1522229401IN
VotesPlatformToken
0 ETH0.0007297620
Transfer53358472018-03-28 7:41:322355 days ago1522222892IN
VotesPlatformToken
0 ETH0.000620
Transfer53007012018-03-22 10:48:482361 days ago1521715728IN
VotesPlatformToken
0 ETH0.0007662421
Approve52949422018-03-21 11:44:492362 days ago1521632689IN
VotesPlatformToken
0 ETH0.0013708830
Transfer52890732018-03-20 12:00:202363 days ago1521547220IN
VotesPlatformToken
0 ETH0.0004512421
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
VotesPlatformToken

Compiler Version
v0.4.12+commit.194ff033

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-02-05
*/

pragma solidity ^0.4.11;

/**
 * Math operations with safety checks
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal 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 c;
  }

  function sub(uint256 a, uint256 b) internal returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

}

/*
 * Ownable
 *
 * Base contract with an owner.
 * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
 */
contract Ownable {
  address public owner;

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

  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  function transferOwnership(address newOwner) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint256);
  function transferFrom(address from, address to, uint256 value);
  function approve(address spender, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}


/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
   * @dev Fix for the ERC20 short address attack.
   */
  modifier onlyPayloadSize(uint256 size) {
     require(msg.data.length >= size + 4);
     _;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  }

}

/**
 * @title Standard ERC20 token
 *
 * @dev Implemantation of the basic standart token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is BasicToken, ERC20 {

  mapping (address => mapping (address => uint256)) allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

    balances[_to] = balances[_to].add(_value);
    balances[_from] = balances[_from].sub(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
  }

  /**
   * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) {

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender, 0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    require((_value == 0) || (allowed[msg.sender][_spender] == 0));

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifing the amount of tokens still avaible for the spender.
   */
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

}

/// @title Migration Agent interface
contract MigrationAgent {
  function migrateFrom(address _from, uint256 _value);
}

/// @title Votes Platform Token
contract VotesPlatformToken is StandardToken, Ownable {

  string public name = "Votes Platform Token";
  string public symbol = "VOTES";
  uint256 public decimals = 2;
  uint256 public INITIAL_SUPPLY = 100000000 * 100;

  mapping(address => bool) refundAllowed;

  address public migrationAgent;
  uint256 public totalMigrated;

  /**
   * @dev Contructor that gives msg.sender all of existing tokens.
   */
  function VotesPlatformToken() {
    totalSupply = INITIAL_SUPPLY;
    balances[msg.sender] = INITIAL_SUPPLY;
  }

  /**
   * Allow refund from given presale contract address.
   * Only token owner may do that.
   */
  function allowRefund(address _contractAddress) onlyOwner {
    refundAllowed[_contractAddress] = true;
  }

  /**
   * Refund _count presale tokens from _from to msg.sender.
   * msg.sender must be a trusted presale contract.
   */
  function refundPresale(address _from, uint _count) {
    require(refundAllowed[msg.sender]);
    balances[_from] = balances[_from].sub(_count);
    balances[msg.sender] = balances[msg.sender].add(_count);
  }

  function setMigrationAgent(address _agent) external onlyOwner {
    migrationAgent = _agent;
  }

  function migrate(uint256 _value) external {
    // Abort if not in Operational Migration state.
    require(migrationAgent != 0);

    // Validate input value.
    require(_value > 0);
    require(_value <= balances[msg.sender]);

    balances[msg.sender] -= _value;
    totalSupply -= _value;
    totalMigrated += _value;
    MigrationAgent(migrationAgent).migrateFrom(msg.sender, _value);
  }
}

/**
 * Workflow:
 * 1) owner: create token contract
 * 2) owner: create presale contract
 * 3) owner: transfer required amount of tokens to presale contract
 * 4) owner: allow refund from presale contract by calling token.allowRefund
 * 5) <wait for start time>
 * 6) everyone sends ether to the presale contract and receives tokens in exchange
 * 7) <wait until end time or until hard cap is reached>
 * 8) if soft cap is reached:
 * 8.1) beneficiary calls withdraw() and receives
 * 8.2) beneficiary calls withdrawTokens() and receives the rest of non-sold tokens
 * 9) if soft cap is not reached:
 * 9.1) everyone calls refund() and receives their ether back in exchange for tokens
 * 9.2) owner calls withdrawTokens() and receives the refunded tokens
 */
contract VotesPlatformTokenPreSale is Ownable {
    using SafeMath for uint;

    string public name = "Votes Platform Token ICO";

    VotesPlatformToken public token;
    address public beneficiary;

    uint public hardCap;
    uint public softCap;
    uint public tokenPrice;
    uint public purchaseLimit;

    uint public tokensSold = 0;
    uint public weiRaised = 0;
    uint public investorCount = 0;
    uint public weiRefunded = 0;

    uint public startTime;
    uint public endTime;

    bool public softCapReached = false;
    bool public crowdsaleFinished = false;

    mapping(address => uint) sold;

    event GoalReached(uint amountRaised);
    event SoftCapReached(uint softCap1);
    event NewContribution(address indexed holder, uint256 tokenAmount, uint256 etherAmount);
    event Refunded(address indexed holder, uint256 amount);

    modifier onlyAfter(uint time) {
        require(now >= time);
        _;
    }

    modifier onlyBefore(uint time) {
        require(now <= time);
        _;
    }

    function VotesPlatformTokenPreSale(
        uint _hardCapUSD,       // maximum allowed fundraising in USD
        uint _softCapUSD,       // minimum amount in USD required for withdrawal by beneficiary
        address _token,         // token contract address
        address _beneficiary,   // beneficiary address
        uint _totalTokens,      // in token-wei. i.e. number of presale tokens * 10^18
        uint _priceETH,         // ether price in USD
        uint _purchaseLimitUSD, // purchase limit in USD
        uint _startTime,        // start time (unix time, in seconds since 1970-01-01)
        uint _duration          // presale duration in hours
    ) {
        hardCap = _hardCapUSD * 1 ether / _priceETH;
        softCap = _softCapUSD * 1 ether / _priceETH;
        tokenPrice = hardCap / _totalTokens;

        purchaseLimit = _purchaseLimitUSD * 1 ether / _priceETH / tokenPrice;
        token = VotesPlatformToken(_token);
        beneficiary = _beneficiary;

        startTime = _startTime;
        endTime = _startTime + _duration * 1 hours;
    }

    function () payable {
        require(msg.value / tokenPrice > 0);
        doPurchase(msg.sender);
    }

    function refund() external onlyAfter(endTime) {
        require(!softCapReached);
        uint balance = sold[msg.sender];
        require(balance > 0);
        uint refund = balance * tokenPrice;
        msg.sender.transfer(refund);
        delete sold[msg.sender];
        weiRefunded = weiRefunded.add(refund);
        token.refundPresale(msg.sender, balance);
        Refunded(msg.sender, refund);
    }

    function withdrawTokens() onlyOwner onlyAfter(endTime) {
        token.transfer(beneficiary, token.balanceOf(this));
    }

    function withdraw() onlyOwner {
        require(softCapReached);
        beneficiary.transfer(weiRaised);
        token.transfer(beneficiary, token.balanceOf(this));
        crowdsaleFinished = true;
    }

    function doPurchase(address _to) private onlyAfter(startTime) onlyBefore(endTime) {
        assert(crowdsaleFinished == false);

        require(weiRaised.add(msg.value) <= hardCap);

        if (!softCapReached && weiRaised < softCap && weiRaised.add(msg.value) >= softCap) {
            softCapReached = true;
            SoftCapReached(softCap);
        }

        uint tokens = msg.value / tokenPrice;
        require(token.balanceOf(_to) + tokens <= purchaseLimit);

        if (sold[_to] == 0)
            investorCount++;

        token.transfer(_to, tokens);
        sold[_to] += tokens;
        tokensSold = tokensSold.add(tokens);

        weiRaised = weiRaised.add(msg.value);

        NewContribution(_to, tokens, msg.value);

        if (weiRaised == hardCap) {
            GoalReached(hardCap);
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"migrate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_agent","type":"address"}],"name":"setMigrationAgent","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"migrationAgent","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalMigrated","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_count","type":"uint256"}],"name":"refundPresale","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_contractAddress","type":"address"}],"name":"allowRefund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

606060405260408051908101604052601481527f566f74657320506c6174666f726d20546f6b656e0000000000000000000000006020820152600490805161004b9291602001906100ee565b506040805190810160405260058082527f564f54455300000000000000000000000000000000000000000000000000000060208301529080516100929291602001906100ee565b5060026006556402540be40060075534156100ac57600080fd5b5b5b60038054600160a060020a03191633600160a060020a03161790555b6007546000818155600160a060020a0333168152600160205260409020555b61018e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061012f57805160ff191683800117855561015c565b8280016001018555821561015c579182015b8281111561015c578251825591602001919060010190610141565b5b5061016992915061016d565b5090565b61018b91905b808211156101695760008155600101610173565b5090565b90565b610bad8061019d6000396000f300606060405236156100f95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100fe578063095ea7b31461018957806318160ddd146101ad57806323b872dd146101d25780632ff2e9dc146101fc578063313ce56714610221578063454b06081461024657806370a082311461025e57806375e2ff651461028f5780638328dbcd146102b05780638da5cb5b146102df57806395a0f5eb1461030e57806395d89b4114610333578063a521ebfa146103be578063a9059cbb146103e2578063d6db71e914610406578063dd62ed3e14610427578063f2fde38b1461045e575b600080fd5b341561010957600080fd5b61011161047f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561014e5780820151818401525b602001610135565b50505050905090810190601f16801561017b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561019457600080fd5b6101ab600160a060020a036004351660243561051d565b005b34156101b857600080fd5b6101c06105bd565b60405190815260200160405180910390f35b34156101dd57600080fd5b6101ab600160a060020a03600435811690602435166044356105c3565b005b341561020757600080fd5b6101c06106e6565b60405190815260200160405180910390f35b341561022c57600080fd5b6101c06106ec565b60405190815260200160405180910390f35b341561025157600080fd5b6101ab6004356106f2565b005b341561026957600080fd5b6101c0600160a060020a03600435166107ee565b60405190815260200160405180910390f35b341561029a57600080fd5b6101ab600160a060020a036004351661080d565b005b34156102bb57600080fd5b6102c3610855565b604051600160a060020a03909116815260200160405180910390f35b34156102ea57600080fd5b6102c3610864565b604051600160a060020a03909116815260200160405180910390f35b341561031957600080fd5b6101c0610873565b60405190815260200160405180910390f35b341561033e57600080fd5b610111610879565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561014e5780820151818401525b602001610135565b50505050905090810190601f16801561017b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103c957600080fd5b6101ab600160a060020a0360043516602435610917565b005b34156103ed57600080fd5b6101ab600160a060020a03600435166024356109bb565b005b341561041157600080fd5b6101ab600160a060020a0360043516610a88565b005b341561043257600080fd5b6101c0600160a060020a0360043581169060243516610acb565b60405190815260200160405180910390f35b341561046957600080fd5b6101ab600160a060020a0360043516610af8565b005b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050505081565b80158061054d5750600160a060020a03338116600090815260026020908152604080832093861683529290522054155b151561055857600080fd5b600160a060020a03338116600081815260026020908152604080832094871680845294909152908190208490557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35b5050565b60005481565b6000606060643610156105d557600080fd5b600160a060020a03808616600090815260026020908152604080832033851684528252808320549388168352600190915290205490925061061c908463ffffffff610b5016565b600160a060020a038086166000908152600160205260408082209390935590871681522054610651908463ffffffff610b6a16565b600160a060020a03861660009081526001602052604090205561067a828463ffffffff610b6a16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35b5b5050505050565b60075481565b60065481565b600954600160a060020a0316151561070957600080fd5b6000811161071657600080fd5b600160a060020a03331660009081526001602052604090205481111561073b57600080fd5b33600160a060020a03818116600090815260016020526040808220805486900390558154859003909155600a80548501905560095490911691637a3130e3918490517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107d657600080fd5b6102c65a03f115156107e757600080fd5b5050505b50565b600160a060020a0381166000908152600160205260409020545b919050565b60035433600160a060020a0390811691161461082857600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600954600160a060020a031681565b600354600160a060020a031681565b600a5481565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050505081565b600160a060020a03331660009081526008602052604090205460ff16151561093e57600080fd5b600160a060020a038216600090815260016020526040902054610967908263ffffffff610b6a16565b600160a060020a0380841660009081526001602052604080822093909355339091168152205461099d908263ffffffff610b5016565b600160a060020a0333166000908152600160205260409020555b5050565b604060443610156109cb57600080fd5b600160a060020a0333166000908152600160205260409020546109f4908363ffffffff610b6a16565b600160a060020a033381166000908152600160205260408082209390935590851681522054610a29908363ffffffff610b5016565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35b5b505050565b60035433600160a060020a03908116911614610aa357600080fd5b600160a060020a0381166000908152600860205260409020805460ff191660011790555b5b50565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a03908116911614610b1357600080fd5b600160a060020a038116156107eb576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600082820183811015610b5f57fe5b8091505b5092915050565b600082821115610b7657fe5b508082035b929150505600a165627a7a72305820484fce4aadd8ca76f10e19e958c7f286a84bc32df910a7c5fa2c231096d3618a0029

Deployed Bytecode

0x606060405236156100f95763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100fe578063095ea7b31461018957806318160ddd146101ad57806323b872dd146101d25780632ff2e9dc146101fc578063313ce56714610221578063454b06081461024657806370a082311461025e57806375e2ff651461028f5780638328dbcd146102b05780638da5cb5b146102df57806395a0f5eb1461030e57806395d89b4114610333578063a521ebfa146103be578063a9059cbb146103e2578063d6db71e914610406578063dd62ed3e14610427578063f2fde38b1461045e575b600080fd5b341561010957600080fd5b61011161047f565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561014e5780820151818401525b602001610135565b50505050905090810190601f16801561017b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561019457600080fd5b6101ab600160a060020a036004351660243561051d565b005b34156101b857600080fd5b6101c06105bd565b60405190815260200160405180910390f35b34156101dd57600080fd5b6101ab600160a060020a03600435811690602435166044356105c3565b005b341561020757600080fd5b6101c06106e6565b60405190815260200160405180910390f35b341561022c57600080fd5b6101c06106ec565b60405190815260200160405180910390f35b341561025157600080fd5b6101ab6004356106f2565b005b341561026957600080fd5b6101c0600160a060020a03600435166107ee565b60405190815260200160405180910390f35b341561029a57600080fd5b6101ab600160a060020a036004351661080d565b005b34156102bb57600080fd5b6102c3610855565b604051600160a060020a03909116815260200160405180910390f35b34156102ea57600080fd5b6102c3610864565b604051600160a060020a03909116815260200160405180910390f35b341561031957600080fd5b6101c0610873565b60405190815260200160405180910390f35b341561033e57600080fd5b610111610879565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561014e5780820151818401525b602001610135565b50505050905090810190601f16801561017b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103c957600080fd5b6101ab600160a060020a0360043516602435610917565b005b34156103ed57600080fd5b6101ab600160a060020a03600435166024356109bb565b005b341561041157600080fd5b6101ab600160a060020a0360043516610a88565b005b341561043257600080fd5b6101c0600160a060020a0360043581169060243516610acb565b60405190815260200160405180910390f35b341561046957600080fd5b6101ab600160a060020a0360043516610af8565b005b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050505081565b80158061054d5750600160a060020a03338116600090815260026020908152604080832093861683529290522054155b151561055857600080fd5b600160a060020a03338116600081815260026020908152604080832094871680845294909152908190208490557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a35b5050565b60005481565b6000606060643610156105d557600080fd5b600160a060020a03808616600090815260026020908152604080832033851684528252808320549388168352600190915290205490925061061c908463ffffffff610b5016565b600160a060020a038086166000908152600160205260408082209390935590871681522054610651908463ffffffff610b6a16565b600160a060020a03861660009081526001602052604090205561067a828463ffffffff610b6a16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35b5b5050505050565b60075481565b60065481565b600954600160a060020a0316151561070957600080fd5b6000811161071657600080fd5b600160a060020a03331660009081526001602052604090205481111561073b57600080fd5b33600160a060020a03818116600090815260016020526040808220805486900390558154859003909155600a80548501905560095490911691637a3130e3918490517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107d657600080fd5b6102c65a03f115156107e757600080fd5b5050505b50565b600160a060020a0381166000908152600160205260409020545b919050565b60035433600160a060020a0390811691161461082857600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600954600160a060020a031681565b600354600160a060020a031681565b600a5481565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105155780601f106104ea57610100808354040283529160200191610515565b820191906000526020600020905b8154815290600101906020018083116104f857829003601f168201915b505050505081565b600160a060020a03331660009081526008602052604090205460ff16151561093e57600080fd5b600160a060020a038216600090815260016020526040902054610967908263ffffffff610b6a16565b600160a060020a0380841660009081526001602052604080822093909355339091168152205461099d908263ffffffff610b5016565b600160a060020a0333166000908152600160205260409020555b5050565b604060443610156109cb57600080fd5b600160a060020a0333166000908152600160205260409020546109f4908363ffffffff610b6a16565b600160a060020a033381166000908152600160205260408082209390935590851681522054610a29908363ffffffff610b5016565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35b5b505050565b60035433600160a060020a03908116911614610aa357600080fd5b600160a060020a0381166000908152600860205260409020805460ff191660011790555b5b50565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a03908116911614610b1357600080fd5b600160a060020a038116156107eb576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600082820183811015610b5f57fe5b8091505b5092915050565b600082821115610b7657fe5b508082035b929150505600a165627a7a72305820484fce4aadd8ca76f10e19e958c7f286a84bc32df910a7c5fa2c231096d3618a0029

Swarm Source

bzzr://484fce4aadd8ca76f10e19e958c7f286a84bc32df910a7c5fa2c231096d3618a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.