ETH Price: $2,334.77 (+11.20%)

Contract

0xEe2ef02c7d83de53A7bAEB197029513b6ec5CCBD
 

Overview

ETH Balance

0.000001584617457146 ETH

Eth Value

Less Than $0.01 (@ $2,334.77/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw96063452020-03-04 18:29:192203 days ago1583346559IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000570367
Withdraw95605442020-02-26 17:37:012210 days ago1582738621IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.0010976616.5
Deposit ERC20Tok...95604812020-02-26 17:23:332210 days ago1582737813IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.0008684917
Withdraw95603522020-02-26 16:54:142210 days ago1582736054IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.0024668215
Deposit Ether95603402020-02-26 16:51:482210 days ago1582735908IN
0xEe2ef02c...b6ec5CCBD
3.1 ETH0.0005815
Withdraw95602152020-02-26 16:24:542210 days ago1582734294IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.0022396913
Deposit Ether95601972020-02-26 16:22:332210 days ago1582734153IN
0xEe2ef02c...b6ec5CCBD
2.9 ETH0.0004640412.001
Withdraw95512142020-02-25 7:12:202211 days ago1582614740IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.0005129410
Deposit Ether95511442020-02-25 6:55:552211 days ago1582613755IN
0xEe2ef02c...b6ec5CCBD
1.77 ETH0.0003489
Withdraw95511342020-02-25 6:54:082211 days ago1582613648IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000461649
Withdraw95511312020-02-25 6:53:292211 days ago1582613609IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000452459
Deposit ERC20Tok...95511202020-02-25 6:49:292211 days ago1582613369IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000459799
Withdraw95510952020-02-25 6:42:372211 days ago1582612957IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.00044248.8
Deposit ERC20Tok...95510492020-02-25 6:33:502211 days ago1582612430IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000449578.8
Withdraw95479152020-02-24 18:57:532211 days ago1582570673IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000281525.6
Deposit ERC20Tok...95477312020-02-24 18:16:372212 days ago1582568197IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000337186.6
Withdraw95413132020-02-23 18:37:382213 days ago1582483058IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000325974
Withdraw95403672020-02-23 15:17:452213 days ago1582471065IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000733329
Withdraw95172672020-02-20 1:46:212216 days ago1582163181IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000691388
Withdraw95172542020-02-20 1:43:252216 days ago1582163005IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.00053218
Deposit ERC20Tok...95172422020-02-20 1:39:272216 days ago1582162767IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000674328.316
Withdraw95169702020-02-20 0:41:122216 days ago1582159272IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000542867.60076
Withdraw95169222020-02-20 0:30:282216 days ago1582158628IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.00038477.5
Deposit Ether95169052020-02-20 0:26:262216 days ago1582158386IN
0xEe2ef02c...b6ec5CCBD
5 ETH0.000293897.60076
Withdraw95168502020-02-20 0:15:012216 days ago1582157701IN
0xEe2ef02c...b6ec5CCBD
0 ETH0.000656887.60076
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-95603482020-02-26 16:53:492210 days ago1582736029
0xEe2ef02c...b6ec5CCBD
3.09999969 ETH
-95602062020-02-26 16:23:462210 days ago1582734226
0xEe2ef02c...b6ec5CCBD
2.89999971 ETH
-95512142020-02-25 7:12:202211 days ago1582614740
0xEe2ef02c...b6ec5CCBD
1.77 ETH
-95511342020-02-25 6:54:082211 days ago1582613648
0xEe2ef02c...b6ec5CCBD
0.00087 ETH
-95511312020-02-25 6:53:292211 days ago1582613609
0xEe2ef02c...b6ec5CCBD
0.975 ETH
-95511272020-02-25 6:51:452211 days ago1582613505
0xEe2ef02c...b6ec5CCBD
0.97578849 ETH
-95510952020-02-25 6:42:372211 days ago1582612957
0xEe2ef02c...b6ec5CCBD
1.7702 ETH
-95510702020-02-25 6:37:392211 days ago1582612659
0xEe2ef02c...b6ec5CCBD
0.2067891 ETH
-95510692020-02-25 6:37:292211 days ago1582612649
0xEe2ef02c...b6ec5CCBD
0.47063205 ETH
-95510682020-02-25 6:37:092211 days ago1582612629
0xEe2ef02c...b6ec5CCBD
0.33967936 ETH
-95510682020-02-25 6:37:092211 days ago1582612629
0xEe2ef02c...b6ec5CCBD
0.41900952 ETH
-95510682020-02-25 6:37:092211 days ago1582612629
0xEe2ef02c...b6ec5CCBD
0.33412707 ETH
-95479152020-02-24 18:57:532211 days ago1582570673
0xEe2ef02c...b6ec5CCBD
1.6457 ETH
-95477682020-02-24 18:23:522212 days ago1582568632
0xEe2ef02c...b6ec5CCBD
0.65488292 ETH
-95477552020-02-24 18:21:582212 days ago1582568518
0xEe2ef02c...b6ec5CCBD
0.77085793 ETH
-95477442020-02-24 18:19:422212 days ago1582568382
0xEe2ef02c...b6ec5CCBD
0.21996206 ETH
-95169222020-02-20 0:30:282216 days ago1582158628
0xEe2ef02c...b6ec5CCBD
4.27 ETH
-95169142020-02-20 0:28:252216 days ago1582158505
0xEe2ef02c...b6ec5CCBD
0.74999857 ETH
-95168342020-02-20 0:12:032216 days ago1582157523
0xEe2ef02c...b6ec5CCBD
4.25000142 ETH
-95168342020-02-20 0:12:032216 days ago1582157523
0xEe2ef02c...b6ec5CCBD
1.44999914 ETH
-95167922020-02-20 0:03:132216 days ago1582156993
0xEe2ef02c...b6ec5CCBD
3.55000085 ETH
-95167922020-02-20 0:03:132216 days ago1582156993
0xEe2ef02c...b6ec5CCBD
1.79999967 ETH
-95167472020-02-19 23:52:102216 days ago1582156330
0xEe2ef02c...b6ec5CCBD
3.20000032 ETH
-95167132020-02-19 23:44:522216 days ago1582155892
0xEe2ef02c...b6ec5CCBD
3.2157 ETH
-95166402020-02-19 23:27:372216 days ago1582154857
0xEe2ef02c...b6ec5CCBD
1.73428055 ETH
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

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

Contract Name:
WalletV3

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-01
*/

/**
 *Submitted for verification at Etherscan.io on 2019-08-06
*/

// File: contracts/utils/LoggingErrors.sol

pragma solidity ^0.4.11;

/**
 * @title Log Various Error Types
 * @author Adam Lemmon <adam@oraclize.it>
 * @dev Inherit this contract and your may now log errors easily
 * To support various error types, params, etc.
 */
contract LoggingErrors {
  /**
  * Events
  */
  event LogErrorString(string errorString);

  /**
  * Error cases
  */

  /**
   * @dev Default error to simply log the error message and return
   * @param _errorMessage The error message to log
   * @return ALWAYS false
   */
  function error(string _errorMessage) internal returns(bool) {
    emit LogErrorString(_errorMessage);
    return false;
  }
}

// File: contracts/wallet/WalletConnector.sol

pragma solidity ^0.4.15;


/**
 * @title Wallet Connector
 * @dev Connect the wallet contract to the correct Wallet Logic version
 */
contract WalletConnector is LoggingErrors {
  /**
   * Storage
   */
  address public owner_;
  address public latestLogic_;
  uint256 public latestVersion_;
  mapping(uint256 => address) public logicVersions_;
  uint256 public birthBlock_;

  /**
   * Events
   */
  event LogLogicVersionAdded(uint256 version);
  event LogLogicVersionRemoved(uint256 version);

  /**
   * @dev Constructor to set the latest logic address
   * @param _latestVersion Latest version of the wallet logic
   * @param _latestLogic Latest address of the wallet logic contract
   */
  function WalletConnector (
    uint256 _latestVersion,
    address _latestLogic
  ) public {
    owner_ = msg.sender;
    latestLogic_ = _latestLogic;
    latestVersion_ = _latestVersion;
    logicVersions_[_latestVersion] = _latestLogic;
    birthBlock_ = block.number;
  }

  /**
   * Add a new version of the logic contract
   * @param _version The version to be associated with the new contract.
   * @param _logic New logic contract.
   * @return Success of the transaction.
   */
  function addLogicVersion (
    uint256 _version,
    address _logic
  ) external
    returns(bool)
  {
    if (msg.sender != owner_)
      return error('msg.sender != owner, WalletConnector.addLogicVersion()');

    if (logicVersions_[_version] != 0)
      return error('Version already exists, WalletConnector.addLogicVersion()');

    // Update latest if this is the latest version
    if (_version > latestVersion_) {
      latestLogic_ = _logic;
      latestVersion_ = _version;
    }

    logicVersions_[_version] = _logic;
    LogLogicVersionAdded(_version);

    return true;
  }

  /**
   * @dev Remove a version. Cannot remove the latest version.
   * @param  _version The version to remove.
   */
  function removeLogicVersion(uint256 _version) external {
    require(msg.sender == owner_);
    require(_version != latestVersion_);
    delete logicVersions_[_version];
    LogLogicVersionRemoved(_version);
  }

  /**
   * Constants
   */

  /**
   * Called from user wallets in order to upgrade their logic.
   * @param _version The version to upgrade to. NOTE pass in 0 to upgrade to latest.
   * @return The address of the logic contract to upgrade to.
   */
  function getLogic(uint256 _version)
    external
    constant
    returns(address)
  {
    if (_version == 0)
      return latestLogic_;
    else
      return logicVersions_[_version];
  }
}

// File: contracts/wallet/WalletBuilderInterface.sol

pragma solidity ^0.4.15;



/**
 * @title Wallet to hold and trade ERC20 tokens and ether
 */
interface WalletBuilderInterface {

  /**
   * @dev build a new trading wallet and returns its address
   * @param _owner user EOA of the created trading wallet
   * @param _exchange exchange address
   */
  function buildWallet(address _owner, address _exchange) external returns(address);
}

// File: contracts/token/ERC20Interface.sol

pragma solidity ^0.4.11;

interface Token {
  /// @return total amount of tokens
  function totalSupply() external constant returns (uint256 supply);

  /// @param _owner The address from which the balance will be retrieved
  /// @return The balance
  function balanceOf(address _owner) external constant returns (uint256 balance);

  /// @notice send `_value` token to `_to` from `msg.sender`
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transfer(address _to, uint256 _value) external returns (bool success);

  /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
  /// @param _from The address of the sender
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);

  /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @param _value The amount of wei to be approved for transfer
  /// @return Whether the approval was successful or not
  function approve(address _spender, uint256 _value) external returns (bool success);

  /// @param _owner The address of the account owning tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @return Amount of remaining tokens allowed to spent
  function allowance(address _owner, address _spender) external constant returns (uint256 remaining);

  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);

  function decimals() external constant returns(uint);
  function name() external constant returns(string);
}

// File: contracts/wallet/WalletV3.sol

pragma solidity ^0.4.15;




/**
 * @title Wallet to hold and trade ERC20 tokens and ether
 * @dev User wallet to interact with the exchange.
 * all tokens and ether held in this wallet, 1 to 1 mapping to user EOAs.
 */
contract WalletV3 is LoggingErrors {
  /**
   * Storage
   */
  // Vars included in wallet logic "lib", the order must match between Wallet and Logic
  address public owner_;
  address public exchange_;
  mapping(address => uint256) public tokenBalances_;

  address public logic_; // storage location 0x3 loaded for delegatecalls so this var must remain at index 3
  uint256 public birthBlock_;

  WalletConnector private connector_;

  /**
   * Events
   */
  event LogDeposit(address token, uint256 amount, uint256 balance);
  event LogWithdrawal(address token, uint256 amount, uint256 balance);

  /**
   * @dev Contract constructor. Set user as owner and connector address.
   * @param _owner The address of the user's EOA, wallets created from the exchange
   * so must past in the owner address, msg.sender == exchange.
   * @param _connector The wallet connector to be used to retrieve the wallet logic
   */
  constructor(address _owner, address _connector, address _exchange) public {
    owner_ = _owner;
    connector_ = WalletConnector(_connector);
    exchange_ = _exchange;
    logic_ = connector_.latestLogic_();
    birthBlock_ = block.number;
  }

  function () external payable {}

  /**
  * External
  */

  /**
   * @dev Deposit ether into this wallet, default to address 0 for consistent token lookup.
   */
  function depositEther()
    external
    payable
  {
    require(
      logic_.delegatecall(abi.encodeWithSignature('deposit(address,uint256)', 0, msg.value)),
      "depositEther() failed"
    );
  }

  /**
   * @dev Deposit any ERC20 token into this wallet.
   * @param _token The address of the existing token contract.
   * @param _amount The amount of tokens to deposit.
   * @return Bool if the deposit was successful.
   */
  function depositERC20Token (
    address _token,
    uint256 _amount
  ) external
    returns(bool)
  {
    // ether
    if (_token == 0)
      return error('Cannot deposit ether via depositERC20, Wallet.depositERC20Token()');

    require(
      logic_.delegatecall(abi.encodeWithSignature('deposit(address,uint256)', _token, _amount)),
      "depositERC20Token() failed"
    );
    return true;
  }

  /**
   * @dev The result of an order, update the balance of this wallet.
   * param _token The address of the token balance to update.
   * param _amount The amount to update the balance by.
   * param _subtractionFlag If true then subtract the token amount else add.
   * @return Bool if the update was successful.
   */
  function updateBalance (
    address /*_token*/,
    uint256 /*_amount*/,
    bool /*_subtractionFlag*/
  ) external
    returns(bool)
  {
    assembly {
      calldatacopy(0x40, 0, calldatasize)
      delegatecall(gas, sload(0x3), 0x40, calldatasize, 0, 32)
      return(0, 32)
      pop
    }
  }

  /**
   * User may update to the latest version of the exchange contract.
   * Note that multiple versions are NOT supported at this time and therefore if a
   * user does not wish to update they will no longer be able to use the exchange.
   * @param _exchange The new exchange.
   * @return Success of this transaction.
   */
  function updateExchange(address _exchange)
    external
    returns(bool)
  {
    if (msg.sender != owner_)
      return error('msg.sender != owner_, Wallet.updateExchange()');

    // If subsequent messages are not sent from this address all orders will fail
    exchange_ = _exchange;

    return true;
  }

  /**
   * User may update to a new or older version of the logic contract.
   * @param _version The versin to update to.
   * @return Success of this transaction.
   */
  function updateLogic(uint256 _version)
    external
    returns(bool)
  {
    if (msg.sender != owner_)
      return error('msg.sender != owner_, Wallet.updateLogic()');

    address newVersion = connector_.getLogic(_version);

    // Invalid version as defined by connector
    if (newVersion == 0)
      return error('Invalid version, Wallet.updateLogic()');

    logic_ = newVersion;
    return true;
  }

  /**
   * @dev Verify an order that the Exchange has received involving this wallet.
   * Internal checks and then authorize the exchange to move the tokens.
   * If sending ether will transfer to the exchange to broker the trade.
   * param _token The address of the token contract being sold.
   * param _amount The amount of tokens the order is for.
   * param _fee The fee for the current trade.
   * param _feeToken The token of which the fee is to be paid in.
   * @return If the order was verified or not.
   */
  function verifyOrder (
    address /*_token*/,
    uint256 /*_amount*/,
    uint256 /*_fee*/,
    address /*_feeToken*/
  ) external
    returns(bool)
  {
    assembly {
      calldatacopy(0x40, 0, calldatasize)
      delegatecall(gas, sload(0x3), 0x40, calldatasize, 0, 32)
      return(0, 32)
      pop
    }
  }

  /**
   * @dev Withdraw any token, including ether from this wallet to an EOA.
   * param _token The address of the token to withdraw.
   * param _amount The amount to withdraw.
   * @return Success of the withdrawal.
   */
  function withdraw(address /*_token*/, uint256 /*_amount*/)
    external
    returns(bool)
  {
    if(msg.sender != owner_)
      return error('msg.sender != owner, Wallet.withdraw()');

    assembly {
      calldatacopy(0x40, 0, calldatasize)
      delegatecall(gas, sload(0x3), 0x40, calldatasize, 0, 32)
      return(0, 32)
      pop
    }
  }

  /**
   * Constants
   */

  /**
   * @dev Get the balance for a specific token.
   * @param _token The address of the token contract to retrieve the balance of.
   * @return The current balance within this contract.
   */
  function balanceOf(address _token)
    public
    view
    returns(uint)
  {
    if (_token == address(0)) {
      return address(this).balance;
    } else {
      return Token(_token).balanceOf(this);
    }
  }

  function walletVersion() external pure returns(uint){
    return 3;
  }
}

// File: contracts/wallet/WalletV3Builder.sol

pragma solidity ^0.4.15;



/**
 * @title Wallet to hold and trade ERC20 tokens and ether
 * @dev User wallet to interact with the exchange.
 * all tokens and ether held in this wallet, 1 to 1 mapping to user EOAs.
 */
contract WalletV3Builder is WalletBuilderInterface {

  address public connector;

  /**
   * @dev Contract constructor. Set user as owner and connector address.
   * @param _connector The wallet connector to be used to retrieve the wallet logic
   */
  constructor (address _connector) public {
    connector = _connector;
  }

  /**
   * @dev build a new trading wallet and returns its address
   * @param _owner user EOA of the created trading wallet
   * @param _exchange exchange address
   */
  function buildWallet(address _owner, address _exchange) external returns(address) {
    return new WalletV3(_owner, connector, _exchange);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"depositERC20Token","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"logic_","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"bool"}],"name":"updateBalance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"verifyOrder","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_exchange","type":"address"}],"name":"updateExchange","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"birthBlock_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"depositEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"walletVersion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"exchange_","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_version","type":"uint256"}],"name":"updateLogic","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner_","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenBalances_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_connector","type":"address"},{"name":"_exchange","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"errorString","type":"string"}],"name":"LogErrorString","type":"event"}]

0x608060405234801561001057600080fd5b50604051606080610bef83398101604081815282516020808501519483015160008054600160a060020a03808616600160a060020a031992831617835560058054828b169084161790819055600180548387169416939093179092557facfdd2c500000000000000000000000000000000000000000000000000000000885295519497969295169363acfdd2c5936004808501949193918390030190829087803b1580156100bd57600080fd5b505af11580156100d1573d6000803e3d6000fd5b505050506040513d60208110156100e757600080fd5b505160038054600160a060020a031916600160a060020a0390921691909117905550504360045550610ad18061011e6000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632039d9fd81146100d157806322d40b1314610109578063412288031461013a5780634e7343ea14610163578063648a0c911461019257806369820a80146101b357806370a08231146101da57806398ea5fca146101fb578063bc51713114610203578063c066817914610218578063d767ee4d1461022d578063e766307914610245578063f3fef3a31461025a578063f6b1b18b1461027e575b005b3480156100dd57600080fd5b506100f5600160a060020a036004351660243561029f565b604080519115158252519081900360200190f35b34801561011557600080fd5b5061011e61049d565b60408051600160a060020a039092168252519081900360200190f35b34801561014657600080fd5b506100f5600160a060020a036004351660243560443515156104ac565b34801561016f57600080fd5b506100f5600160a060020a036004358116906024359060443590606435166104ac565b34801561019e57600080fd5b506100f5600160a060020a03600435166104c6565b3480156101bf57600080fd5b506101c8610574565b60408051918252519081900360200190f35b3480156101e657600080fd5b506101c8600160a060020a036004351661057a565b6100cf610628565b34801561020f57600080fd5b506101c861077f565b34801561022457600080fd5b5061011e610784565b34801561023957600080fd5b506100f5600435610793565b34801561025157600080fd5b5061011e610951565b34801561026657600080fd5b506100f5600160a060020a0360043516602435610960565b34801561028a57600080fd5b506101c8600160a060020a03600435166109f0565b6000600160a060020a03831615156103435761033c608060405190810160405280604181526020017f43616e6e6f74206465706f73697420657468657220766961206465706f73697481526020017f45524332302c2057616c6c65742e6465706f7369744552433230546f6b656e2881526020017f2900000000000000000000000000000000000000000000000000000000000000815250610a02565b9050610497565b60035460408051600160a060020a038681166024830152604480830187905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f47e7ef24000000000000000000000000000000000000000000000000000000001781529251825191909416939192829180838360005b838110156103e65781810151838201526020016103ce565b50505050905090810190601f1680156104135780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561049357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6465706f7369744552433230546f6b656e2829206661696c6564000000000000604482015290519081900360640190fd5b5060015b92915050565b600354600160a060020a031681565b6000366000604037602060003660406003545af460206000f35b60008054600160a060020a031633146105455761053e606060405190810160405280602d81526020017f6d73672e73656e64657220213d206f776e65725f2c2057616c6c65742e75706481526020017f61746545786368616e6765282900000000000000000000000000000000000000815250610a02565b905061056f565b506001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161781555b919050565b60045481565b6000600160a060020a03821615156105945750303161056f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156105f557600080fd5b505af1158015610609573d6000803e3d6000fd5b505050506040513d602081101561061f57600080fd5b5051905061056f565b600354604080516000602482018190523460448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f47e7ef240000000000000000000000000000000000000000000000000000000017815292518251600160a060020a03909516949293909283928190849084905b838110156106d05781810151838201526020016106b8565b50505050905090810190601f1680156106fd5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561077d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6465706f73697445746865722829206661696c65640000000000000000000000604482015290519081900360640190fd5b565b600390565b600154600160a060020a031681565b600080548190600160a060020a031633146108145761080d606060405190810160405280602a81526020017f6d73672e73656e64657220213d206f776e65725f2c2057616c6c65742e75706481526020017f6174654c6f676963282900000000000000000000000000000000000000000000815250610a02565b915061094b565b600554604080517fd526d332000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a039092169163d526d332916024808201926020929091908290030181600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506040513d60208110156108a557600080fd5b50519050600160a060020a038116151561091e5761080d606060405190810160405280602581526020017f496e76616c69642076657273696f6e2c2057616c6c65742e7570646174654c6f81526020017f6769632829000000000000000000000000000000000000000000000000000000815250610a02565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055600191505b50919050565b600054600160a060020a031681565b60008054600160a060020a031633146109d85761033c606060405190810160405280602681526020017f6d73672e73656e64657220213d206f776e65722c2057616c6c65742e7769746881526020017f6472617728290000000000000000000000000000000000000000000000000000815250610a02565b366000604037602060003660406003545af460206000f35b60026020526000908152604090205481565b60007f551303dd5f39cbfe6daba6b3e27754b8a7d72f519756a2cde2b92c2bbde159a7826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a63578181015183820152602001610a4b565b50505050905090810190601f168015610a905780820380516001836020036101000a031916815260200191505b509250505060405180910390a15060009190505600a165627a7a723058204ddb185cd98efe930cfa8de5cabb456db5fab579527b769a5d5660a922e134d200290000000000000000000000009fc862ed31fca18dd5b53cb6456ddf1584db5ec800000000000000000000000003d6e7b2f48120fd57a89ff0bbd56e9ec39af21c000000000000000000000000560d5afc42ad137dece2277fd75001c165cb9a22

Deployed Bytecode

0x6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632039d9fd81146100d157806322d40b1314610109578063412288031461013a5780634e7343ea14610163578063648a0c911461019257806369820a80146101b357806370a08231146101da57806398ea5fca146101fb578063bc51713114610203578063c066817914610218578063d767ee4d1461022d578063e766307914610245578063f3fef3a31461025a578063f6b1b18b1461027e575b005b3480156100dd57600080fd5b506100f5600160a060020a036004351660243561029f565b604080519115158252519081900360200190f35b34801561011557600080fd5b5061011e61049d565b60408051600160a060020a039092168252519081900360200190f35b34801561014657600080fd5b506100f5600160a060020a036004351660243560443515156104ac565b34801561016f57600080fd5b506100f5600160a060020a036004358116906024359060443590606435166104ac565b34801561019e57600080fd5b506100f5600160a060020a03600435166104c6565b3480156101bf57600080fd5b506101c8610574565b60408051918252519081900360200190f35b3480156101e657600080fd5b506101c8600160a060020a036004351661057a565b6100cf610628565b34801561020f57600080fd5b506101c861077f565b34801561022457600080fd5b5061011e610784565b34801561023957600080fd5b506100f5600435610793565b34801561025157600080fd5b5061011e610951565b34801561026657600080fd5b506100f5600160a060020a0360043516602435610960565b34801561028a57600080fd5b506101c8600160a060020a03600435166109f0565b6000600160a060020a03831615156103435761033c608060405190810160405280604181526020017f43616e6e6f74206465706f73697420657468657220766961206465706f73697481526020017f45524332302c2057616c6c65742e6465706f7369744552433230546f6b656e2881526020017f2900000000000000000000000000000000000000000000000000000000000000815250610a02565b9050610497565b60035460408051600160a060020a038681166024830152604480830187905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f47e7ef24000000000000000000000000000000000000000000000000000000001781529251825191909416939192829180838360005b838110156103e65781810151838201526020016103ce565b50505050905090810190601f1680156104135780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561049357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f6465706f7369744552433230546f6b656e2829206661696c6564000000000000604482015290519081900360640190fd5b5060015b92915050565b600354600160a060020a031681565b6000366000604037602060003660406003545af460206000f35b60008054600160a060020a031633146105455761053e606060405190810160405280602d81526020017f6d73672e73656e64657220213d206f776e65725f2c2057616c6c65742e75706481526020017f61746545786368616e6765282900000000000000000000000000000000000000815250610a02565b905061056f565b506001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161781555b919050565b60045481565b6000600160a060020a03821615156105945750303161056f565b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038416916370a082319160248083019260209291908290030181600087803b1580156105f557600080fd5b505af1158015610609573d6000803e3d6000fd5b505050506040513d602081101561061f57600080fd5b5051905061056f565b600354604080516000602482018190523460448084019190915283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f47e7ef240000000000000000000000000000000000000000000000000000000017815292518251600160a060020a03909516949293909283928190849084905b838110156106d05781810151838201526020016106b8565b50505050905090810190601f1680156106fd5780820380516001836020036101000a031916815260200191505b50915050600060405180830381855af4915050151561077d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6465706f73697445746865722829206661696c65640000000000000000000000604482015290519081900360640190fd5b565b600390565b600154600160a060020a031681565b600080548190600160a060020a031633146108145761080d606060405190810160405280602a81526020017f6d73672e73656e64657220213d206f776e65725f2c2057616c6c65742e75706481526020017f6174654c6f676963282900000000000000000000000000000000000000000000815250610a02565b915061094b565b600554604080517fd526d332000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a039092169163d526d332916024808201926020929091908290030181600087803b15801561087b57600080fd5b505af115801561088f573d6000803e3d6000fd5b505050506040513d60208110156108a557600080fd5b50519050600160a060020a038116151561091e5761080d606060405190810160405280602581526020017f496e76616c69642076657273696f6e2c2057616c6c65742e7570646174654c6f81526020017f6769632829000000000000000000000000000000000000000000000000000000815250610a02565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038316179055600191505b50919050565b600054600160a060020a031681565b60008054600160a060020a031633146109d85761033c606060405190810160405280602681526020017f6d73672e73656e64657220213d206f776e65722c2057616c6c65742e7769746881526020017f6472617728290000000000000000000000000000000000000000000000000000815250610a02565b366000604037602060003660406003545af460206000f35b60026020526000908152604090205481565b60007f551303dd5f39cbfe6daba6b3e27754b8a7d72f519756a2cde2b92c2bbde159a7826040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a63578181015183820152602001610a4b565b50505050905090810190601f168015610a905780820380516001836020036101000a031916815260200191505b509250505060405180910390a15060009190505600a165627a7a723058204ddb185cd98efe930cfa8de5cabb456db5fab579527b769a5d5660a922e134d20029

Deployed Bytecode Sourcemap

6269:6152:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8093:415;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8093:415:0;;;-1:-1:-1;;;;;8093:415:0;;;;;;;;;;;;;;;;;;;;;;;6537:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6537:21:0;;;;;;;;-1:-1:-1;;;;;6537:21:0;;;;;;;;;;;;;;8845:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8845:311:0;;;-1:-1:-1;;;;;8845:311:0;;;;;;;;;10956:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10956:328:0;-1:-1:-1;;;;;10956:328:0;;;;;;;;;;;;;;;;9498:319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9498:319:0;;;-1:-1:-1;;;;;9498:319:0;;;6647:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6647:26:0;;;;;;;;;;;;;;;;;;;;12118:221;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12118:221:0;;;-1:-1:-1;;;;;12118:221:0;;;7644:208;;;;12345:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12345:73:0;;;;6452:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6452:24:0;;;;9998:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9998:422:0;;;;;6426:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6426:21:0;;;;11521:358;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11521:358:0;;;-1:-1:-1;;;;;11521:358:0;;;;;6481:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6481:49:0;;;-1:-1:-1;;;;;6481:49:0;;;8093:415;8191:4;-1:-1:-1;;;;;8225:11:0;;;8221:105;;;8252:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;:74::i;:::-;8245:81;;;;8221:105;8351:6;;8371:68;;;-1:-1:-1;;;;;8371:68:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;8371:68:0;;;;;;;25:18:-1;;61:17;;8371:68:0;182:15:-1;8371:68:0;179:29:-1;160:49;;8351:89:0;;;;:6;;;;;8371:68;;8351:89;;;;25:18:-1;-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8351:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8335:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8498:4:0;8093:415;;;;;:::o;6537:21::-;;;-1:-1:-1;;;;;6537:21:0;;:::o;8845:311::-;8979:4;9035:12;9032:1;9026:4;9013:35;9109:2;9106:1;9092:12;9086:4;9080:3;9074:10;9069:3;9056:56;9130:2;9127:1;9120:13;9498:319;9568:4;9602:6;;-1:-1:-1;;;;;9602:6:0;9588:10;:20;9584:94;;9624:54;;;;;;;;;;;;;;;;;;;;;;;;:5;:54::i;:::-;9617:61;;;;9584:94;-1:-1:-1;9770:9:0;:21;;-1:-1:-1;;9770:21:0;-1:-1:-1;;;;;9770:21:0;;;;;9498:319;;;;:::o;6647:26::-;;;;:::o;12118:221::-;12188:4;-1:-1:-1;;;;;12208:20:0;;;12204:130;;;-1:-1:-1;12254:4:0;12246:21;12239:28;;12204:130;12297:29;;;;;;12321:4;12297:29;;;;;;-1:-1:-1;;;;;12297:23:0;;;;;:29;;;;;;;;;;;;;;-1:-1:-1;12297:23:0;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;12297:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12297:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12297:29:0;;-1:-1:-1;12290:36:0;;7644:208;7721:6;;7741:65;;;7721:6;7741:65;;;;;;7796:9;7741:65;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7741:65:0;;;;;;;25:18:-1;;61:17;;7741:65:0;182:15:-1;7741:65:0;179:29:-1;160:49;;7721:86:0;;;;-1:-1:-1;;;;;7721:6:0;;;;7741:65;;7721:86;;;;;;;;25:18:-1;;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7721:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7705:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7644:208::o;12345:73::-;12411:1;12345:73;:::o;6452:24::-;;;-1:-1:-1;;;;;6452:24:0;;:::o;9998:422::-;10064:4;10098:6;;10064:4;;-1:-1:-1;;;;;10098:6:0;10084:10;:20;10080:91;;10120:51;;;;;;;;;;;;;;;;;;;;;;;;:5;:51::i;:::-;10113:58;;;;10080:91;10201:10;;:29;;;;;;;;;;;;;;-1:-1:-1;;;;;10201:10:0;;;;:19;;:29;;;;;;;;;;;;;;;-1:-1:-1;10201:10:0;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;10201:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10201:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10201:29:0;;-1:-1:-1;;;;;;10291:15:0;;;10287:81;;;10322:46;;;;;;;;;;;;;;;;;;;;;;;;:5;:46::i;10287:81::-;10377:6;:19;;-1:-1:-1;;10377:19:0;-1:-1:-1;;;;;10377:19:0;;;;;-1:-1:-1;;;9998:422:0;;;;;:::o;6426:21::-;;;-1:-1:-1;;;;;6426:21:0;;:::o;11521:358::-;11607:4;11640:6;;-1:-1:-1;;;;;11640:6:0;11626:10;:20;11623:86;;11662:47;;;;;;;;;;;;;;;;;;;;;;;;:5;:47::i;11623:86::-;11758:12;11755:1;11749:4;11736:35;11832:2;11829:1;11815:12;11809:4;11803:3;11797:10;11792:3;11779:56;11853:2;11850:1;11843:13;6481:49;;;;;;;;;;;;;:::o;641:126::-;695:4;713:29;728:13;713:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;713:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;756:5:0;641:126;;;:::o

Swarm Source

bzzr://4ddb185cd98efe930cfa8de5cabb456db5fab579527b769a5d5660a922e134d2

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.