ETH Price: $3,121.45 (-2.48%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
OptiVault

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
pragma solidity ^0.8.4;

import '@uniswap/v2-periphery/contracts/interfaces/IERC20.sol';

interface IOptiVaultBalanceLookup {
  function sharesOf(address user) external view returns (uint256 _shares); //shares
}

contract OptiVault {
  // **********************************************************************************
  // *       OptiVaults provide an easy way to lock tokens as a group.                *
  // *    Reflective staking means that early withdrawals are allowed,                *
  // *      for a 20% penalty that is distributed to everyone else.                   *
  // **********************************************************************************

  bool private initialized;
  IERC20 public token; 
  uint256 public lockupDate;                         // deposits cannot be made after this
  uint256 public minimumTokenCommitment;             // deposited tokens must exceed this amount to lock
  bool public failed;                                // campaign failed to reach minimum and is not subject to lock
  bool public succeeded;                             // campaign reached minimum and is locked
  uint256 public withdrawalsLockedUntilTimestamp;    // time at which haircut-free withdrawal is available.
  mapping (address => uint256) private shareBalance; // internal balance tracking for self-contained campaigns
  uint256 private totalShares;                       // the denominator which decreases faster than the token balance
  IOptiVaultBalanceLookup public shareBalanceLookup; // external balance tracking for use by other contracts
  mapping (address => bool) public withdrawn;        // instead of zeroing share balances, this flag is set.

  function initialize(address _token, uint256 _lockupDate, uint256 _minimumTokenCommitment, uint256 _withdrawalsLockedUntilTimestamp, address _balanceLookup) external {
     require(!initialized);
     token = IERC20(_token);
     lockupDate = _lockupDate;
     minimumTokenCommitment = _minimumTokenCommitment;
     withdrawalsLockedUntilTimestamp = _withdrawalsLockedUntilTimestamp;
     if (lockupDate == 0) {
       totalShares = token.balanceOf(address(this));
     }
     shareBalanceLookup = IOptiVaultBalanceLookup(_balanceLookup);
     initialized = true;
   }
 
  function unlockTimestamp() external view returns (uint256 _unlockTimestamp) {
    _unlockTimestamp = withdrawalsLockedUntilTimestamp;
  }

  function sharesOf(address user) external view returns (uint256 _shares) {
    //Shares in the staking venture.    
    _shares = shareBalance[user];
  }

  function tokenBalanceOf(address user) external view returns (uint256 _amount) {
    //The number of tokens redeemable by the user's share.
    if (withdrawn[msg.sender]) {
      return 0;
    }
    uint256 shares = shareBalanceLookup.sharesOf(user);
    _amount = (shares * token.balanceOf(address(this))) / totalShares;
  }

  function tokenLocked() external view returns (address _token) {
    _token = address(token);
  }

  function withdrawable() public view returns (bool) {
    return (failed || block.timestamp >= withdrawalsLockedUntilTimestamp);
  }

  function contribute(uint tokenAmount) public {
    require(block.timestamp < lockupDate, "OptiVault: Pooling phase has ended.");
    token.transferFrom(msg.sender, address(this), tokenAmount);
    shareBalance[msg.sender] += tokenAmount;
    totalShares += tokenAmount;
    if (token.balanceOf(address(this)) >= minimumTokenCommitment) {
      succeeded = true;
    }
  }

  function fail() public {
    require(block.timestamp > lockupDate, "OptiVault: Still in Pooling phase.");
    require(token.balanceOf(address(this)) < minimumTokenCommitment, "OptiVault: Staking succesful.");
    require(!succeeded, "OptiVault: Campaign already succeeded.");
    require(!failed, "OptiVault: Campaign already marked failed.");
    failed = true;
  }

  function earlyWithdrawTokens() public {
    require(withdrawn[msg.sender] == false, "OptiVault: Already withdrawn.");
    require(block.timestamp > lockupDate, "OptiVault: Still in Pooling phase.");
    require(!withdrawable(), "OptiVault: Staking period has ended.");
    uint userTokenBalance = this.tokenBalanceOf(msg.sender);
    uint userShareBalance = shareBalanceLookup.sharesOf(msg.sender);

    uint toTransfer; 
    if (userShareBalance == totalShares) {
      toTransfer = userTokenBalance;
    } else {
      toTransfer = userTokenBalance * 80 / 100;
    }

    totalShares -= userShareBalance;
    token.transfer(msg.sender, toTransfer);
    withdrawn[msg.sender] = true;
  }

  function withdrawTokens() public {
    require(withdrawable(), "OptiVault: Tokens still locked.");
    require(withdrawn[msg.sender] == false, "OptiVault: Already withdrawn.");
    uint toTransfer =  this.tokenBalanceOf(msg.sender);
    token.transfer(msg.sender, toTransfer);
    totalShares -= shareBalanceLookup.sharesOf(msg.sender);
    withdrawn[msg.sender] = true;
  }
}

pragma solidity >=0.5.0;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"contribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlyWithdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fail","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_lockupDate","type":"uint256"},{"internalType":"uint256","name":"_minimumTokenCommitment","type":"uint256"},{"internalType":"uint256","name":"_withdrawalsLockedUntilTimestamp","type":"uint256"},{"internalType":"address","name":"_balanceLookup","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockupDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokenCommitment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"shareBalanceLookup","outputs":[{"internalType":"contract IOptiVaultBalanceLookup","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"sharesOf","outputs":[{"internalType":"uint256","name":"_shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"succeeded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"tokenBalanceOf","outputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLocked","outputs":[{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockTimestamp","outputs":[{"internalType":"uint256","name":"_unlockTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalsLockedUntilTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50611c30806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063a9cc4718116100a2578063bf0db1e411610071578063bf0db1e414610275578063c1cbbca714610293578063e42c08f2146102af578063f5eb42dc146102df578063fc0c546a1461030f57610116565b8063a9cc471814610211578063aa082a9d1461021b578063b5f09a3914610239578063ba414fa61461025757610116565b80636ef61092116100e95780636ef610921461017d5780638b54823f146101ad5780638d8f2adb146101cb57806393415250146101d5578063a66aee6e146101f357610116565b80630478b8c51461011b57806350188301146101255780636a630559146101435780636c28e34914610161575b600080fd5b61012361032d565b005b61012d6106de565b60405161013a919061162f565b60405180910390f35b61014b610702565b60405161015891906115b4565b60405180910390f35b61017b6004803603810190610176919061135f565b61072b565b005b61019760048036038101906101929190611336565b6108b8565b6040516101a4919061162f565b60405180910390f35b6101b56108d8565b6040516101c29190611780565b60405180910390f35b6101d36108de565b005b6101dd610c13565b6040516101ea919061162f565b60405180910390f35b6101fb610c26565b6040516102089190611665565b60405180910390f35b610219610c4c565b005b610223610e3b565b6040516102309190611780565b60405180910390f35b610241610e45565b60405161024e9190611780565b60405180910390f35b61025f610e4b565b60405161026c919061162f565b60405180910390f35b61027d610e5e565b60405161028a9190611780565b60405180910390f35b6102ad60048036038101906102a891906113ff565b610e64565b005b6102c960048036038101906102c49190611336565b61109b565b6040516102d69190611780565b60405180910390f35b6102f960048036038101906102f49190611336565b611273565b6040516103069190611780565b60405180910390f35b6103176112bc565b604051610324919061164a565b60405180910390f35b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b790611760565b60405180910390fd5b6001544211610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb90611720565b60405180910390fd5b61040c6106de565b1561044c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044390611680565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b815260040161048791906115b4565b60206040518083038186803b15801561049f57600080fd5b505afa1580156104b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d79190611428565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b815260040161053691906115b4565b60206040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190611428565b9050600060065482141561059c578290506105b8565b60646050846105ab9190611833565b6105b59190611802565b90505b81600660008282546105ca919061188d565b92505081905550600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161062e929190611606565b602060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068091906113d6565b506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600360009054906101000a900460ff16806106fd57506004544210155b905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900460ff161561074357600080fd5b84600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360018190555082600281905550816004819055506000600154141561085657600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107ff91906115b4565b60206040518083038186803b15801561081757600080fd5b505afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190611428565b6006819055505b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000806101000a81548160ff0219169083151502179055505050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b60025481565b6108e66106de565b610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90611740565b60405180910390fd5b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af90611760565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b81526004016109f391906115b4565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611428565b9050600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610aa2929190611606565b602060405180830381600087803b158015610abc57600080fd5b505af1158015610ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af491906113d6565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b8152600401610b5091906115b4565b60206040518083038186803b158015610b6857600080fd5b505afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611428565b60066000828254610bb1919061188d565b925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600360019054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001544211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790611720565b60405180910390fd5b600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610cee91906115b4565b60206040518083038186803b158015610d0657600080fd5b505afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e9190611428565b10610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590611700565b60405180910390fd5b600360019054906101000a900460ff1615610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906116e0565b60405180910390fd5b600360009054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e15906116a0565b60405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b6000600454905090565b60015481565b600360009054906101000a900460ff1681565b60045481565b6001544210610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906116c0565b60405180910390fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610f07939291906115cf565b602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5991906113d6565b5080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fa991906117ac565b925050819055508060066000828254610fc291906117ac565b92505081905550600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161102791906115b4565b60206040518083038186803b15801561103f57600080fd5b505afa158015611053573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110779190611428565b10611098576001600360016101000a81548160ff0219169083151502179055505b50565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110f8576000905061126e565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc846040518263ffffffff1660e01b815260040161115591906115b4565b60206040518083038186803b15801561116d57600080fd5b505afa158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a59190611428565b9050600654600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120591906115b4565b60206040518083038186803b15801561121d57600080fd5b505afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611428565b826112609190611833565b61126a9190611802565b9150505b919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000813590506112f181611bb5565b92915050565b60008151905061130681611bcc565b92915050565b60008135905061131b81611be3565b92915050565b60008151905061133081611be3565b92915050565b60006020828403121561134857600080fd5b6000611356848285016112e2565b91505092915050565b600080600080600060a0868803121561137757600080fd5b6000611385888289016112e2565b95505060206113968882890161130c565b94505060406113a78882890161130c565b93505060606113b88882890161130c565b92505060806113c9888289016112e2565b9150509295509295909350565b6000602082840312156113e857600080fd5b60006113f6848285016112f7565b91505092915050565b60006020828403121561141157600080fd5b600061141f8482850161130c565b91505092915050565b60006020828403121561143a57600080fd5b600061144884828501611321565b91505092915050565b61145a816118c1565b82525050565b611469816118d3565b82525050565b61147881611909565b82525050565b6114878161192d565b82525050565b600061149a60248361179b565b91506114a5826119af565b604082019050919050565b60006114bd602a8361179b565b91506114c8826119fe565b604082019050919050565b60006114e060238361179b565b91506114eb82611a4d565b604082019050919050565b600061150360268361179b565b915061150e82611a9c565b604082019050919050565b6000611526601d8361179b565b915061153182611aeb565b602082019050919050565b600061154960228361179b565b915061155482611b14565b604082019050919050565b600061156c601f8361179b565b915061157782611b63565b602082019050919050565b600061158f601d8361179b565b915061159a82611b8c565b602082019050919050565b6115ae816118ff565b82525050565b60006020820190506115c96000830184611451565b92915050565b60006060820190506115e46000830186611451565b6115f16020830185611451565b6115fe60408301846115a5565b949350505050565b600060408201905061161b6000830185611451565b61162860208301846115a5565b9392505050565b60006020820190506116446000830184611460565b92915050565b600060208201905061165f600083018461146f565b92915050565b600060208201905061167a600083018461147e565b92915050565b600060208201905081810360008301526116998161148d565b9050919050565b600060208201905081810360008301526116b9816114b0565b9050919050565b600060208201905081810360008301526116d9816114d3565b9050919050565b600060208201905081810360008301526116f9816114f6565b9050919050565b6000602082019050818103600083015261171981611519565b9050919050565b600060208201905081810360008301526117398161153c565b9050919050565b600060208201905081810360008301526117598161155f565b9050919050565b6000602082019050818103600083015261177981611582565b9050919050565b600060208201905061179560008301846115a5565b92915050565b600082825260208201905092915050565b60006117b7826118ff565b91506117c2836118ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f7576117f6611951565b5b828201905092915050565b600061180d826118ff565b9150611818836118ff565b92508261182857611827611980565b5b828204905092915050565b600061183e826118ff565b9150611849836118ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561188257611881611951565b5b828202905092915050565b6000611898826118ff565b91506118a3836118ff565b9250828210156118b6576118b5611951565b5b828203905092915050565b60006118cc826118df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006119148261191b565b9050919050565b6000611926826118df565b9050919050565b60006119388261193f565b9050919050565b600061194a826118df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4f7074695661756c743a205374616b696e6720706572696f642068617320656e60008201527f6465642e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479206d61726b60008201527f6564206661696c65642e00000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20506f6f6c696e672070686173652068617320656e6460008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479207375636360008201527f65656465642e0000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a205374616b696e672073756363657366756c2e000000600082015250565b7f4f7074695661756c743a205374696c6c20696e20506f6f6c696e67207068617360008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20546f6b656e73207374696c6c206c6f636b65642e00600082015250565b7f4f7074695661756c743a20416c72656164792077697468647261776e2e000000600082015250565b611bbe816118c1565b8114611bc957600080fd5b50565b611bd5816118d3565b8114611be057600080fd5b50565b611bec816118ff565b8114611bf757600080fd5b5056fea264697066735822122053e33752e1582608c351720fe907e09aa7fdb1f3a6c7d1c8769b65c331695c5364736f6c63430008040033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063a9cc4718116100a2578063bf0db1e411610071578063bf0db1e414610275578063c1cbbca714610293578063e42c08f2146102af578063f5eb42dc146102df578063fc0c546a1461030f57610116565b8063a9cc471814610211578063aa082a9d1461021b578063b5f09a3914610239578063ba414fa61461025757610116565b80636ef61092116100e95780636ef610921461017d5780638b54823f146101ad5780638d8f2adb146101cb57806393415250146101d5578063a66aee6e146101f357610116565b80630478b8c51461011b57806350188301146101255780636a630559146101435780636c28e34914610161575b600080fd5b61012361032d565b005b61012d6106de565b60405161013a919061162f565b60405180910390f35b61014b610702565b60405161015891906115b4565b60405180910390f35b61017b6004803603810190610176919061135f565b61072b565b005b61019760048036038101906101929190611336565b6108b8565b6040516101a4919061162f565b60405180910390f35b6101b56108d8565b6040516101c29190611780565b60405180910390f35b6101d36108de565b005b6101dd610c13565b6040516101ea919061162f565b60405180910390f35b6101fb610c26565b6040516102089190611665565b60405180910390f35b610219610c4c565b005b610223610e3b565b6040516102309190611780565b60405180910390f35b610241610e45565b60405161024e9190611780565b60405180910390f35b61025f610e4b565b60405161026c919061162f565b60405180910390f35b61027d610e5e565b60405161028a9190611780565b60405180910390f35b6102ad60048036038101906102a891906113ff565b610e64565b005b6102c960048036038101906102c49190611336565b61109b565b6040516102d69190611780565b60405180910390f35b6102f960048036038101906102f49190611336565b611273565b6040516103069190611780565b60405180910390f35b6103176112bc565b604051610324919061164a565b60405180910390f35b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b790611760565b60405180910390fd5b6001544211610404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fb90611720565b60405180910390fd5b61040c6106de565b1561044c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044390611680565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b815260040161048791906115b4565b60206040518083038186803b15801561049f57600080fd5b505afa1580156104b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d79190611428565b90506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b815260040161053691906115b4565b60206040518083038186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190611428565b9050600060065482141561059c578290506105b8565b60646050846105ab9190611833565b6105b59190611802565b90505b81600660008282546105ca919061188d565b92505081905550600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161062e929190611606565b602060405180830381600087803b15801561064857600080fd5b505af115801561065c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068091906113d6565b506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000600360009054906101000a900460ff16806106fd57506004544210155b905090565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900460ff161561074357600080fd5b84600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360018190555082600281905550816004819055506000600154141561085657600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107ff91906115b4565b60206040518083038186803b15801561081757600080fd5b505afa15801561082b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084f9190611428565b6006819055505b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000806101000a81548160ff0219169083151502179055505050505050565b60086020528060005260406000206000915054906101000a900460ff1681565b60025481565b6108e66106de565b610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90611740565b60405180910390fd5b60001515600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109af90611760565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff1663e42c08f2336040518263ffffffff1660e01b81526004016109f391906115b4565b60206040518083038186803b158015610a0b57600080fd5b505afa158015610a1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a439190611428565b9050600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610aa2929190611606565b602060405180830381600087803b158015610abc57600080fd5b505af1158015610ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af491906113d6565b50600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc336040518263ffffffff1660e01b8152600401610b5091906115b4565b60206040518083038186803b158015610b6857600080fd5b505afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba09190611428565b60066000828254610bb1919061188d565b925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600360019054906101000a900460ff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6001544211610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790611720565b60405180910390fd5b600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610cee91906115b4565b60206040518083038186803b158015610d0657600080fd5b505afa158015610d1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3e9190611428565b10610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590611700565b60405180910390fd5b600360019054906101000a900460ff1615610dce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc5906116e0565b60405180910390fd5b600360009054906101000a900460ff1615610e1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e15906116a0565b60405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b6000600454905090565b60015481565b600360009054906101000a900460ff1681565b60045481565b6001544210610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906116c0565b60405180910390fd5b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610f07939291906115cf565b602060405180830381600087803b158015610f2157600080fd5b505af1158015610f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5991906113d6565b5080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fa991906117ac565b925050819055508060066000828254610fc291906117ac565b92505081905550600254600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161102791906115b4565b60206040518083038186803b15801561103f57600080fd5b505afa158015611053573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110779190611428565b10611098576001600360016101000a81548160ff0219169083151502179055505b50565b6000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110f8576000905061126e565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5eb42dc846040518263ffffffff1660e01b815260040161115591906115b4565b60206040518083038186803b15801561116d57600080fd5b505afa158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a59190611428565b9050600654600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161120591906115b4565b60206040518083038186803b15801561121d57600080fd5b505afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611428565b826112609190611833565b61126a9190611802565b9150505b919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000813590506112f181611bb5565b92915050565b60008151905061130681611bcc565b92915050565b60008135905061131b81611be3565b92915050565b60008151905061133081611be3565b92915050565b60006020828403121561134857600080fd5b6000611356848285016112e2565b91505092915050565b600080600080600060a0868803121561137757600080fd5b6000611385888289016112e2565b95505060206113968882890161130c565b94505060406113a78882890161130c565b93505060606113b88882890161130c565b92505060806113c9888289016112e2565b9150509295509295909350565b6000602082840312156113e857600080fd5b60006113f6848285016112f7565b91505092915050565b60006020828403121561141157600080fd5b600061141f8482850161130c565b91505092915050565b60006020828403121561143a57600080fd5b600061144884828501611321565b91505092915050565b61145a816118c1565b82525050565b611469816118d3565b82525050565b61147881611909565b82525050565b6114878161192d565b82525050565b600061149a60248361179b565b91506114a5826119af565b604082019050919050565b60006114bd602a8361179b565b91506114c8826119fe565b604082019050919050565b60006114e060238361179b565b91506114eb82611a4d565b604082019050919050565b600061150360268361179b565b915061150e82611a9c565b604082019050919050565b6000611526601d8361179b565b915061153182611aeb565b602082019050919050565b600061154960228361179b565b915061155482611b14565b604082019050919050565b600061156c601f8361179b565b915061157782611b63565b602082019050919050565b600061158f601d8361179b565b915061159a82611b8c565b602082019050919050565b6115ae816118ff565b82525050565b60006020820190506115c96000830184611451565b92915050565b60006060820190506115e46000830186611451565b6115f16020830185611451565b6115fe60408301846115a5565b949350505050565b600060408201905061161b6000830185611451565b61162860208301846115a5565b9392505050565b60006020820190506116446000830184611460565b92915050565b600060208201905061165f600083018461146f565b92915050565b600060208201905061167a600083018461147e565b92915050565b600060208201905081810360008301526116998161148d565b9050919050565b600060208201905081810360008301526116b9816114b0565b9050919050565b600060208201905081810360008301526116d9816114d3565b9050919050565b600060208201905081810360008301526116f9816114f6565b9050919050565b6000602082019050818103600083015261171981611519565b9050919050565b600060208201905081810360008301526117398161153c565b9050919050565b600060208201905081810360008301526117598161155f565b9050919050565b6000602082019050818103600083015261177981611582565b9050919050565b600060208201905061179560008301846115a5565b92915050565b600082825260208201905092915050565b60006117b7826118ff565b91506117c2836118ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117f7576117f6611951565b5b828201905092915050565b600061180d826118ff565b9150611818836118ff565b92508261182857611827611980565b5b828204905092915050565b600061183e826118ff565b9150611849836118ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561188257611881611951565b5b828202905092915050565b6000611898826118ff565b91506118a3836118ff565b9250828210156118b6576118b5611951565b5b828203905092915050565b60006118cc826118df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006119148261191b565b9050919050565b6000611926826118df565b9050919050565b60006119388261193f565b9050919050565b600061194a826118df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4f7074695661756c743a205374616b696e6720706572696f642068617320656e60008201527f6465642e00000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479206d61726b60008201527f6564206661696c65642e00000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20506f6f6c696e672070686173652068617320656e6460008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a2043616d706169676e20616c7265616479207375636360008201527f65656465642e0000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a205374616b696e672073756363657366756c2e000000600082015250565b7f4f7074695661756c743a205374696c6c20696e20506f6f6c696e67207068617360008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f7074695661756c743a20546f6b656e73207374696c6c206c6f636b65642e00600082015250565b7f4f7074695661756c743a20416c72656164792077697468647261776e2e000000600082015250565b611bbe816118c1565b8114611bc957600080fd5b50565b611bd5816118d3565b8114611be057600080fd5b50565b611bec816118ff565b8114611bf757600080fd5b5056fea264697066735822122053e33752e1582608c351720fe907e09aa7fdb1f3a6c7d1c8769b65c331695c5364736f6c63430008040033

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

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