ETH Price: $1,586.25 (-2.55%)
Gas: 13 Gwei
 
Transaction Hash
Method
Block
From
To
Value
Withdraw110097702020-10-07 16:54:021079 days 2 mins ago1602089642IN
0x60f852...3790042C
0 ETH0.0027675492
Withdraw94755672020-02-13 15:42:461316 days 1 hr ago1581608566IN
0x60f852...3790042C
0 ETH0.000330911
Withdraw91601122019-12-25 9:37:521366 days 7 hrs ago1577266672IN
0x60f852...3790042C
0 ETH0.00015773.5
Withdraw85867212019-09-20 14:26:521462 days 2 hrs ago1568989612IN
0x60f852...3790042C
0 ETH0.0010054525
Withdraw81735192019-07-18 8:11:041526 days 8 hrs ago1563437464IN
0x60f852...3790042C
0 ETH0.000284987.07480745
Withdraw81705782019-07-17 21:20:131526 days 19 hrs ago1563398413IN
0x60f852...3790042C
0 ETH0.000219084
Withdraw81651642019-07-17 0:41:551527 days 16 hrs ago1563324115IN
0x60f852...3790042C
0 ETH0.0013286127
Deposit81651132019-07-17 0:31:171527 days 16 hrs ago1563323477IN
0x60f852...3790042C
0 ETH0.0018898225
Deposit81648742019-07-16 23:41:151527 days 17 hrs ago1563320475IN
0x60f852...3790042C
0 ETH0.0020410127
Withdraw80543262019-06-29 18:16:111544 days 22 hrs ago1561832171IN
0x60f852...3790042C
0 ETH0.000050431.25
Withdraw80319272019-06-26 6:02:121548 days 10 hrs ago1561528932IN
0x60f852...3790042C
0 ETH0.0004927210
Deposit79999132019-06-21 6:37:411553 days 10 hrs ago1561099061IN
0x60f852...3790042C
0 ETH0.000453556
Withdraw79869532019-06-19 5:55:101555 days 11 hrs ago1560923710IN
0x60f852...3790042C
0 ETH0.000050351.25
Deposit79725992019-06-16 23:49:401557 days 17 hrs ago1560728980IN
0x60f852...3790042C
0 ETH0.000242114
Deposit79457752019-06-12 19:24:021561 days 21 hrs ago1560367442IN
0x60f852...3790042C
0 ETH0.000271773
Deposit79371562019-06-11 11:05:591563 days 5 hrs ago1560251159IN
0x60f852...3790042C
0 ETH0.000292423.875
Deposit78608362019-05-30 12:10:121575 days 4 hrs ago1559218212IN
0x60f852...3790042C
0 ETH0.000454447.5
Deposit78604272019-05-30 10:36:461575 days 6 hrs ago1559212606IN
0x60f852...3790042C
0 ETH0.000543176
Withdraw78604212019-05-30 10:35:421575 days 6 hrs ago1559212542IN
0x60f852...3790042C
0 ETH0.0003427210
Deposit78540772019-05-29 10:50:571576 days 6 hrs ago1559127057IN
0x60f852...3790042C
0 ETH0.000509085.62745036
Withdraw78540742019-05-29 10:49:511576 days 6 hrs ago1559126991IN
0x60f852...3790042C
0 ETH0.000171685
Deposit78528742019-05-29 6:26:241576 days 10 hrs ago1559111184IN
0x60f852...3790042C
0 ETH0.0013560115
Deposit78330362019-05-26 4:03:101579 days 12 hrs ago1558843390IN
0x60f852...3790042C
0 ETH0.00030045
Withdraw78153552019-05-23 10:11:031582 days 6 hrs ago1558606263IN
0x60f852...3790042C
0 ETH0.000307956.25
Deposit78149512019-05-23 8:38:561582 days 8 hrs ago1558600736IN
0x60f852...3790042C
0 ETH0.0009449112.5
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x1a9B2d...dEeBa26e
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
WrapperLock

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-13
*/

pragma solidity 0.4.24;

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev 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);
}
/**
 * @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);
}

/**ERC20OldBasic.sol
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 */
contract ERC20OldBasic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public;
  event Transfer(address indexed from, address indexed to, uint256 value);
}

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

/**
 * @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) {
    if (a == 0) {
      return 0;
    }
    uint256 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 c;
  }

  /**
  * @dev Substracts 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) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

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

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

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

}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/*

  Copyright Ethfinex Inc 2018

  Licensed under the Apache License, Version 2.0
  http://www.apache.org/licenses/LICENSE-2.0

*/

contract WrapperLock is BasicToken, Ownable {
    using SafeMath for uint256;

    address public TRANSFER_PROXY_VEFX = 0x7e03d2b8edc3585ecd8a5807661fff0830a0b603;
    address public TRANSFER_PROXY_V2 = 0x2240Dab907db71e64d3E0dbA4800c83B5C502d4E;
    mapping (address => bool) public isSigner;

    bool public erc20old;
    string public name;
    string public symbol;
    uint public decimals;
    address public originalToken;

    mapping (address => uint256) public depositLock;
    mapping (address => uint256) public balances;

    function WrapperLock(address _originalToken, string _name, string _symbol, uint _decimals, bool _erc20old) Ownable() {
        originalToken = _originalToken;
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        isSigner[msg.sender] = true;
        erc20old = _erc20old;
    }

    function deposit(uint _value, uint _forTime) public returns (bool success) {
        require(_forTime >= 1);
        require(now + _forTime * 1 hours >= depositLock[msg.sender]);
        if (erc20old) {
            ERC20Old(originalToken).transferFrom(msg.sender, address(this), _value);
        } else {
            require(ERC20(originalToken).transferFrom(msg.sender, address(this), _value));
        }
        balances[msg.sender] = balances[msg.sender].add(_value);
        totalSupply_ = totalSupply_.add(_value);
        depositLock[msg.sender] = now + _forTime * 1 hours;
        return true;
    }

    function withdraw(
        uint _value,
        uint8 v,
        bytes32 r,
        bytes32 s,
        uint signatureValidUntilBlock
    )
        public
        returns
        (bool success)
    {
        require(balanceOf(msg.sender) >= _value);
        if (now <= depositLock[msg.sender]) {
            require(block.number < signatureValidUntilBlock);
            require(isValidSignature(keccak256(msg.sender, address(this), signatureValidUntilBlock), v, r, s));
        }
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        depositLock[msg.sender] = 0;
        if (erc20old) {
            ERC20Old(originalToken).transfer(msg.sender, _value);
        } else {
            require(ERC20(originalToken).transfer(msg.sender, _value));
        }
        return true;
    }

    function withdrawBalanceDifference() public onlyOwner returns (bool success) {
        require(ERC20(originalToken).balanceOf(address(this)).sub(totalSupply_) > 0);
        if (erc20old) {
            ERC20Old(originalToken).transfer(msg.sender, ERC20(originalToken).balanceOf(address(this)).sub(totalSupply_));
        } else {
            require(ERC20(originalToken).transfer(msg.sender, ERC20(originalToken).balanceOf(address(this)).sub(totalSupply_)));
        }
        return true;
    }

    function withdrawDifferentToken(address _differentToken, bool _erc20old) public onlyOwner returns (bool) {
        require(_differentToken != originalToken);
        require(ERC20(_differentToken).balanceOf(address(this)) > 0);
        if (_erc20old) {
            ERC20Old(_differentToken).transfer(msg.sender, ERC20(_differentToken).balanceOf(address(this)));
        } else {
            require(ERC20(_differentToken).transfer(msg.sender, ERC20(_differentToken).balanceOf(address(this))));
        }
        return true;
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        return false;
    }

    function transferFrom(address _from, address _to, uint _value) public {
        require(isSigner[_to] || isSigner[_from]);
        assert(msg.sender == TRANSFER_PROXY_VEFX || msg.sender == TRANSFER_PROXY_V2);
        balances[_to] = balances[_to].add(_value);
        depositLock[_to] = depositLock[_to] > now ? depositLock[_to] : now + 1 hours;
        balances[_from] = balances[_from].sub(_value);
        Transfer(_from, _to, _value);
    }

    function allowance(address _owner, address _spender) public constant returns (uint) {
        if (_spender == TRANSFER_PROXY_VEFX || _spender == TRANSFER_PROXY_V2) {
            return 2**256 - 1;
        }
    }

    function balanceOf(address _owner) public constant returns (uint256) {
        return balances[_owner];
    }

    function isValidSignature(
        bytes32 hash,
        uint8 v,
        bytes32 r,
        bytes32 s
    )
        public
        constant
        returns (bool)
    {
        return isSigner[ecrecover(
            keccak256("\x19Ethereum Signed Message:\n32", hash),
            v,
            r,
            s
        )];
    }

    function addSigner(address _newSigner) public {
        require(isSigner[msg.sender]);
        isSigner[_newSigner] = true;
    }

    function keccak(address _sender, address _wrapper, uint _validTill) public constant returns(bytes32) {
        return keccak256(_sender, _wrapper, _validTill);
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalanceDifference","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"originalToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"signatureValidUntilBlock","type":"uint256"}],"name":"withdraw","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TRANSFER_PROXY_VEFX","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_sender","type":"address"},{"name":"_wrapper","type":"address"},{"name":"_validTill","type":"uint256"}],"name":"keccak","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isSigner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"hash","type":"bytes32"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"isValidSignature","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"erc20old","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TRANSFER_PROXY_V2","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"depositLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_differentToken","type":"address"},{"name":"_erc20old","type":"bool"}],"name":"withdrawDifferentToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"_forTime","type":"uint256"}],"name":"deposit","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newSigner","type":"address"}],"name":"addSigner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_originalToken","type":"address"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"},{"name":"_erc20old","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"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"}]

Deployed Bytecode

0x6080604052600436106101245763ffffffff60e060020a60003504166306fdde0381146101295780630b82d33d146101b35780630e7c1cb5146101dc57806318160ddd1461020d5780631d6f757d1461023457806323b872dd1461025b57806327e235e314610287578063313ce567146102a857806345164b3e146102bd57806370a08231146102d257806374f1d6ce146102f35780637df73e271461031d5780638b257d3d1461033e5780638da5cb5b1461036257806395d89b41146103775780639de666041461038c578063a9059cbb146103a1578063ad93640f146103c5578063cc891023146103da578063d9ee369a146103fb578063dd62ed3e14610421578063e2bbb15814610448578063eb12d61e14610463578063f2fde38b14610484575b600080fd5b34801561013557600080fd5b5061013e6104a5565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610178578181015183820152602001610160565b50505050905090810190601f1680156101a55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101bf57600080fd5b506101c8610533565b604080519115158252519081900360200190f35b3480156101e857600080fd5b506101f16107b3565b60408051600160a060020a039092168252519081900360200190f35b34801561021957600080fd5b506102226107c2565b60408051918252519081900360200190f35b34801561024057600080fd5b506101c860043560ff602435166044356064356084356107c8565b34801561026757600080fd5b50610285600160a060020a03600435811690602435166044356109e2565b005b34801561029357600080fd5b50610222600160a060020a0360043516610b69565b3480156102b457600080fd5b50610222610b7b565b3480156102c957600080fd5b506101f1610b81565b3480156102de57600080fd5b50610222600160a060020a0360043516610b90565b3480156102ff57600080fd5b50610222600160a060020a0360043581169060243516604435610bab565b34801561032957600080fd5b506101c8600160a060020a0360043516610bed565b34801561034a57600080fd5b506101c860043560ff60243516604435606435610c02565b34801561036e57600080fd5b506101f1610cc5565b34801561038357600080fd5b5061013e610cd4565b34801561039857600080fd5b506101c8610d2f565b3480156103ad57600080fd5b506101c8600160a060020a0360043516602435610d38565b3480156103d157600080fd5b506101f1610d41565b3480156103e657600080fd5b50610222600160a060020a0360043516610d50565b34801561040757600080fd5b506101c8600160a060020a03600435166024351515610d62565b34801561042d57600080fd5b50610222600160a060020a036004358116906024351661101b565b34801561045457600080fd5b506101c8600435602435611055565b34801561046f57600080fd5b50610285600160a060020a0360043516611233565b34801561049057600080fd5b50610285600160a060020a0360043516611275565b6007805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561052b5780601f106105005761010080835404028352916020019161052b565b820191906000526020600020905b81548152906001019060200180831161050e57829003601f168201915b505050505081565b600254600090600160a060020a0316331461054d57600080fd5b600154600a546040805160e060020a6370a0823102815230600482015290516000936105e0939092600160a060020a03909116916370a082319160248082019260209290919082900301818987803b1580156105a857600080fd5b505af11580156105bc573d6000803e3d6000fd5b505050506040513d60208110156105d257600080fd5b50519063ffffffff61130a16565b116105ea57600080fd5b60065460ff16156106c457600a546001546040805160e060020a6370a082310281523060048201529051600160a060020a039093169263a9059cbb9233926106559286916370a082319160248083019260209291908290030181600087803b1580156105a857600080fd5b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b505050506107ad565b600a546001546040805160e060020a6370a082310281523060048201529051600160a060020a039093169263a9059cbb9233926107249286916370a082319160248083019260209291908290030181600087803b1580156105a857600080fd5b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561077657600080fd5b505af115801561078a573d6000803e3d6000fd5b505050506040513d60208110156107a057600080fd5b505115156107ad57600080fd5b50600190565b600a54600160a060020a031681565b60015490565b6000856107d433610b90565b10156107df57600080fd5b336000908152600b602052604090205442116108485743821161080157600080fd5b604080516c0100000000000000000000000033810282523002601482015260288101849052905190819003604801902061083d90868686610c02565b151561084857600080fd5b336000908152600c6020526040902054610868908763ffffffff61130a16565b336000908152600c602052604090205560015461088b908763ffffffff61130a16565b600155336000908152600b602052604081205560065460ff161561093257600a54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163a9059cbb9160448082019260009290919082900301818387803b15801561091557600080fd5b505af1158015610929573d6000803e3d6000fd5b505050506109d6565b600a54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b15801561099f57600080fd5b505af11580156109b3573d6000803e3d6000fd5b505050506040513d60208110156109c957600080fd5b505115156109d657600080fd5b50600195945050505050565b600160a060020a03821660009081526005602052604090205460ff1680610a215750600160a060020a03831660009081526005602052604090205460ff165b1515610a2c57600080fd5b600354600160a060020a0316331480610a4f5750600454600160a060020a031633145b1515610a5757fe5b600160a060020a0382166000908152600c6020526040902054610a80908263ffffffff61131c16565b600160a060020a0383166000908152600c6020908152604080832093909355600b905220544210610ab55742610e1001610acf565b600160a060020a0382166000908152600b60205260409020545b600160a060020a038084166000908152600b60209081526040808320949094559186168152600c9091522054610b0b908263ffffffff61130a16565b600160a060020a038085166000818152600c602090815260409182902094909455805185815290519286169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3505050565b600c6020526000908152604090205481565b60095481565b600354600160a060020a031681565b600160a060020a03166000908152600c602052604090205490565b604080516c01000000000000000000000000600160a060020a038087168202835285160260148201526028810183905290519081900360480190209392505050565b60056020526000908152604090205460ff1681565b604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101869052815190819003603c018120600080835260208381018086529290925260ff87168385015260608301869052608083018590529251600592849260019260a080840193601f19830192908190039091019086865af1158015610c95573d6000803e3d6000fd5b505060408051601f190151600160a060020a03168352602083019390935250016000205460ff1695945050505050565b600254600160a060020a031681565b6008805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561052b5780601f106105005761010080835404028352916020019161052b565b60065460ff1681565b60005b92915050565b600454600160a060020a031681565b600b6020526000908152604090205481565b600254600090600160a060020a03163314610d7c57600080fd5b600a54600160a060020a0384811691161415610d9757600080fd5b6040805160e060020a6370a082310281523060048201529051600091600160a060020a038616916370a082319160248082019260209290919082900301818787803b158015610de557600080fd5b505af1158015610df9573d6000803e3d6000fd5b505050506040513d6020811015610e0f57600080fd5b505111610e1b57600080fd5b8115610f0c576040805160e060020a6370a082310281523060048201529051600160a060020a0385169163a9059cbb91339184916370a08231916024808201926020929091908290030181600087803b158015610e7757600080fd5b505af1158015610e8b573d6000803e3d6000fd5b505050506040513d6020811015610ea157600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915251604480830192600092919082900301818387803b158015610eef57600080fd5b505af1158015610f03573d6000803e3d6000fd5b50505050611012565b6040805160e060020a6370a082310281523060048201529051600160a060020a0385169163a9059cbb91339184916370a08231916024808201926020929091908290030181600087803b158015610f6257600080fd5b505af1158015610f76573d6000803e3d6000fd5b505050506040513d6020811015610f8c57600080fd5b50516040805160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091525160448083019260209291908290030181600087803b158015610fdb57600080fd5b505af1158015610fef573d6000803e3d6000fd5b505050506040513d602081101561100557600080fd5b5051151561101257600080fd5b50600192915050565b600354600090600160a060020a03838116911614806110475750600454600160a060020a038381169116145b15610d3b5750600019610d3b565b6000600182101561106557600080fd5b336000908152600b602052604090205442610e10840201101561108757600080fd5b60065460ff161561112157600a54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216916323b872dd9160648082019260009290919082900301818387803b15801561110457600080fd5b505af1158015611118573d6000803e3d6000fd5b505050506111cb565b600a54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018690529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561119457600080fd5b505af11580156111a8573d6000803e3d6000fd5b505050506040513d60208110156111be57600080fd5b505115156111cb57600080fd5b336000908152600c60205260409020546111eb908463ffffffff61131c16565b336000908152600c602052604090205560015461120e908463ffffffff61131c16565b6001908155336000908152600b6020526040902042610e108502019055905092915050565b3360009081526005602052604090205460ff16151561125157600080fd5b600160a060020a03166000908152600560205260409020805460ff19166001179055565b600254600160a060020a0316331461128c57600080fd5b600160a060020a03811615156112a157600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561131657fe5b50900390565b60008282018381101561132b57fe5b93925050505600a165627a7a72305820d8ce1e95c3f406f7e09f5a4f24ed3067e36288ad833e5aca435a2da34df45cb50029

Swarm Source

bzzr://d8ce1e95c3f406f7e09f5a4f24ed3067e36288ad833e5aca435a2da34df45cb5

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.