More Info
Private Name Tags
ContractCreator
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Token Rese... | 12495384 | 1358 days ago | IN | 0 ETH | 0.00635671 | ||||
Claim Team Reser... | 12495334 | 1358 days ago | IN | 0 ETH | 0.00194614 | ||||
Claim Token Rese... | 10113328 | 1725 days ago | IN | 0 ETH | 0.00471893 | ||||
Claim Team Reser... | 10113241 | 1725 days ago | IN | 0 ETH | 0.00348192 | ||||
Claim Team Reser... | 9647732 | 1797 days ago | IN | 0 ETH | 0.00004437 | ||||
Claim Token Rese... | 9647732 | 1797 days ago | IN | 0 ETH | 0.00004651 | ||||
Claim Team Reser... | 9636045 | 1799 days ago | IN | 0 ETH | 0.00154752 | ||||
Claim Team Reser... | 8965812 | 1909 days ago | IN | 0 ETH | 0.00119251 | ||||
Claim Team Reser... | 8397668 | 1999 days ago | IN | 0 ETH | 0.00491911 | ||||
Claim Team Reser... | 7802654 | 2092 days ago | IN | 0 ETH | 0.0020372 | ||||
Claim Team Reser... | 7801574 | 2092 days ago | IN | 0 ETH | 0.00107711 | ||||
Claim Team Reser... | 7801473 | 2092 days ago | IN | 0 ETH | 0.00107711 | ||||
Claim Team Reser... | 7273262 | 2175 days ago | IN | 0 ETH | 0.0020372 | ||||
Claim Team Reser... | 6737150 | 2274 days ago | IN | 0 ETH | 0.00491911 | ||||
Claim Team Reser... | 6184850 | 2365 days ago | IN | 0 ETH | 0.00621566 | ||||
Allocate | 5651067 | 2457 days ago | IN | 0 ETH | 0.01762932 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
LibraTokenVault
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-05-21 */ pragma solidity ^0.4.18; /** * @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 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 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); } /** * @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 Standard ERC20 token * * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint _addedValue) public returns (bool) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } } /** * @title SimpleToken * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator. * Note they can later distribute these tokens as they wish using `transfer` and other * `StandardToken` functions. */ contract LibraToken is StandardToken { string public constant name = "LibraToken"; // solium-disable-line uppercase string public constant symbol = "LBA"; // solium-disable-line uppercase uint8 public constant decimals = 18; // solium-disable-line uppercase uint256 public constant INITIAL_SUPPLY = (10 ** 9) * (10 ** uint256(decimals)); /** * @dev Constructor that gives msg.sender all of existing tokens. */ function LibraToken() public { totalSupply_ = INITIAL_SUPPLY; balances[msg.sender] = INITIAL_SUPPLY; Transfer(0x0, msg.sender, INITIAL_SUPPLY); } } /** * @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; } } contract LibraTokenVault is Ownable { using SafeMath for uint256; //Wallet Addresses for allocation address public teamReserveWallet = 0x373c69fDedE072A3F5ab1843a0e5fE0102Cc6793; address public firstReserveWallet = 0x99C83f62DBE1a488f9C9d370DA8e86EC55224eB4; address public secondReserveWallet = 0x90DfF11810dA6227d348C86C59257C1C0033D307; //Token Allocations uint256 public teamReserveAllocation = 2 * (10 ** 8) * (10 ** 18); uint256 public firstReserveAllocation = 15 * (10 ** 7) * (10 ** 18); uint256 public secondReserveAllocation = 15 * (10 ** 7) * (10 ** 18); //Total Token Allocations uint256 public totalAllocation = 5 * (10 ** 8) * (10 ** 18); uint256 public teamTimeLock = 2 * 365 days; uint256 public teamVestingStages = 8; uint256 public firstReserveTimeLock = 2 * 365 days; uint256 public secondReserveTimeLock = 3 * 365 days; /** Reserve allocations */ mapping(address => uint256) public allocations; /** When timeLocks are over (UNIX Timestamp) */ mapping(address => uint256) public timeLocks; /** How many tokens each reserve wallet has claimed */ mapping(address => uint256) public claimed; /** When this vault was locked (UNIX Timestamp)*/ uint256 public lockedAt = 0; LibraToken public token; /** Allocated reserve tokens */ event Allocated(address wallet, uint256 value); /** Distributed reserved tokens */ event Distributed(address wallet, uint256 value); /** Tokens have been locked */ event Locked(uint256 lockTime); //Any of the three reserve wallets modifier onlyReserveWallets { require(allocations[msg.sender] > 0); _; } //Only Libra team reserve wallet modifier onlyTeamReserve { require(msg.sender == teamReserveWallet); require(allocations[msg.sender] > 0); _; } //Only first and second token reserve wallets modifier onlyTokenReserve { require(msg.sender == firstReserveWallet || msg.sender == secondReserveWallet); require(allocations[msg.sender] > 0); _; } //Has not been locked yet modifier notLocked { require(lockedAt == 0); _; } modifier locked { require(lockedAt > 0); _; } //Token allocations have not been set modifier notAllocated { require(allocations[teamReserveWallet] == 0); require(allocations[firstReserveWallet] == 0); require(allocations[secondReserveWallet] == 0); _; } function LibraTokenVault(ERC20 _token) public { owner = msg.sender; token = LibraToken(_token); } function allocate() public notLocked notAllocated onlyOwner { //Makes sure Token Contract has the exact number of tokens require(token.balanceOf(address(this)) == totalAllocation); allocations[teamReserveWallet] = teamReserveAllocation; allocations[firstReserveWallet] = firstReserveAllocation; allocations[secondReserveWallet] = secondReserveAllocation; Allocated(teamReserveWallet, teamReserveAllocation); Allocated(firstReserveWallet, firstReserveAllocation); Allocated(secondReserveWallet, secondReserveAllocation); lock(); } //Lock the vault for the three wallets function lock() internal notLocked onlyOwner { lockedAt = block.timestamp; timeLocks[teamReserveWallet] = lockedAt.add(teamTimeLock); timeLocks[firstReserveWallet] = lockedAt.add(firstReserveTimeLock); timeLocks[secondReserveWallet] = lockedAt.add(secondReserveTimeLock); Locked(lockedAt); } //In the case locking failed, then allow the owner to reclaim the tokens on the contract. //Recover Tokens in case incorrect amount was sent to contract. function recoverFailedLock() external notLocked notAllocated onlyOwner { // Transfer all tokens on this contract back to the owner require(token.transfer(owner, token.balanceOf(address(this)))); } // Total number of tokens currently in the vault function getTotalBalance() public view returns (uint256 tokensCurrentlyInVault) { return token.balanceOf(address(this)); } // Number of tokens that are still locked function getLockedBalance() public view onlyReserveWallets returns (uint256 tokensLocked) { return allocations[msg.sender].sub(claimed[msg.sender]); } //Claim tokens for first/second reserve wallets function claimTokenReserve() onlyTokenReserve locked public { address reserveWallet = msg.sender; // Can't claim before Lock ends require(block.timestamp > timeLocks[reserveWallet]); // Must Only claim once require(claimed[reserveWallet] == 0); uint256 amount = allocations[reserveWallet]; claimed[reserveWallet] = amount; require(token.transfer(reserveWallet, amount)); Distributed(reserveWallet, amount); } //Claim tokens for Libra team reserve wallet function claimTeamReserve() onlyTeamReserve locked public { uint256 vestingStage = teamVestingStage(); //Amount of tokens the team should have at this vesting stage uint256 totalUnlocked = vestingStage.mul(allocations[teamReserveWallet]).div(teamVestingStages); require(totalUnlocked <= allocations[teamReserveWallet]); //Previously claimed tokens must be less than what is unlocked require(claimed[teamReserveWallet] < totalUnlocked); uint256 payment = totalUnlocked.sub(claimed[teamReserveWallet]); claimed[teamReserveWallet] = totalUnlocked; require(token.transfer(teamReserveWallet, payment)); Distributed(teamReserveWallet, payment); } //Current Vesting stage for Libra team function teamVestingStage() public view onlyTeamReserve returns(uint256){ // Every 3 months uint256 vestingMonths = teamTimeLock.div(teamVestingStages); uint256 stage = (block.timestamp.sub(lockedAt)).div(vestingMonths); //Ensures team vesting stage doesn't go past teamVestingStages if(stage > teamVestingStages){ stage = teamVestingStages; } return stage; } // Checks if msg.sender can collect tokens function canCollect() public view onlyReserveWallets returns(bool) { return block.timestamp > timeLocks[msg.sender] && claimed[msg.sender] == 0; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"secondReserveAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTotalBalance","outputs":[{"name":"tokensCurrentlyInVault","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLockedBalance","outputs":[{"name":"tokensLocked","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamReserveAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTimeLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimTeamReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allocations","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondReserveWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstReserveAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalAllocation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamVestingStage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamVestingStages","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"timeLocks","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimTokenReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamReserveWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"allocate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"firstReserveWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockedAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"firstReserveTimeLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"claimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"canCollect","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"secondReserveTimeLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"recoverFailedLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"wallet","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Allocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"wallet","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"lockTime","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
608060405273373c69fdede072a3f5ab1843a0e5fe0102cc6793600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507399c83f62dbe1a488f9c9d370da8e86ec55224eb4600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507390dff11810da6227d348c86c59257c1c0033d307600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506aa56fa5b99019a5c80000006004556a7c13bc4b2c133c560000006005556a7c13bc4b2c133c560000006006556b019d971e4fe8401e740000006007556303c2670060085560086009556303c26700600a556305a39a80600b556000600f5534801561016e57600080fd5b5060405160208061249383398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050612231806102626000396000f300608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d0a19011461015957806312b58349146101845780632549e0b1146101af5780633743f0bf146101da57806338dacaab146102055780634fb0a3cd1461023057806352a9039c146102475780636880ff5b1461029e5780636f4618d8146102f557806379203dc4146103205780637ae2aa341461034b5780637b777517146103765780637f76b223146103a15780638da5cb5b146103f85780639d9afce91461044f5780639f83008a14610466578063abaa9916146104bd578063aede4680146104d4578063b21634821461052b578063b3a0e18814610556578063c884ef8314610581578063c9b0d97b146105d8578063dc32c72f14610607578063f2fde38b14610632578063f85b216014610675578063fc0c546a1461068c575b600080fd5b34801561016557600080fd5b5061016e6106e3565b6040518082815260200191505060405180910390f35b34801561019057600080fd5b506101996106e9565b6040518082815260200191505060405180910390f35b3480156101bb57600080fd5b506101c46107e8565b6040518082815260200191505060405180910390f35b3480156101e657600080fd5b506101ef6108cd565b6040518082815260200191505060405180910390f35b34801561021157600080fd5b5061021a6108d3565b6040518082815260200191505060405180910390f35b34801561023c57600080fd5b506102456108d9565b005b34801561025357600080fd5b50610288600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da7565b6040518082815260200191505060405180910390f35b3480156102aa57600080fd5b506102b3610dbf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030157600080fd5b5061030a610de5565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610335610deb565b6040518082815260200191505060405180910390f35b34801561035757600080fd5b50610360610df1565b6040518082815260200191505060405180910390f35b34801561038257600080fd5b5061038b610efa565b6040518082815260200191505060405180910390f35b3480156103ad57600080fd5b506103e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f00565b6040518082815260200191505060405180910390f35b34801561040457600080fd5b5061040d610f18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045b57600080fd5b50610464610f3d565b005b34801561047257600080fd5b5061047b6112f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c957600080fd5b506104d2611317565b005b3480156104e057600080fd5b506104e96118c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053757600080fd5b506105406118ef565b6040518082815260200191505060405180910390f35b34801561056257600080fd5b5061056b6118f5565b6040518082815260200191505060405180910390f35b34801561058d57600080fd5b506105c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118fb565b6040518082815260200191505060405180910390f35b3480156105e457600080fd5b506105ed611913565b604051808215151515815260200191505060405180910390f35b34801561061357600080fd5b5061061c6119f4565b6040518082815260200191505060405180910390f35b34801561063e57600080fd5b50610673600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119fa565b005b34801561068157600080fd5b5061068a611b4f565b005b34801561069857600080fd5b506106a1611f30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60065481565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050506040513d60208110156107d257600080fd5b8101908080519060200190929190505050905090565b600080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561083757600080fd5b6108c8600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5690919063ffffffff16565b905090565b60045481565b60085481565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093a57600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561098857600080fd5b6000600f5411151561099957600080fd5b6109a1610df1565b9250610a2b600954610a1d600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611f6f90919063ffffffff16565b611faa90919063ffffffff16565b9150600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a9d57600080fd5b81600e6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515610b0c57600080fd5b610b80600e6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f5690919063ffffffff16565b905081600e6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050506040513d6020811015610cf957600080fd5b81019080805190602001909291905050501515610d1557600080fd5b7fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b600c6020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60075481565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5257600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610ea057600080fd5b610eb7600954600854611faa90919063ffffffff16565b9150610ee082610ed2600f5442611f5690919063ffffffff16565b611faa90919063ffffffff16565b9050600954811115610ef25760095490505b809250505090565b60095481565b600d6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fe95750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610ff457600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561104257600080fd5b6000600f5411151561105357600080fd5b339150600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421115156110a357600080fd5b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156110f157600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561123c57600080fd5b505af1158015611250573d6000803e3d6000fd5b505050506040513d602081101561126657600080fd5b8101908080519060200190929190505050151561128257600080fd5b7fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f5414151561132857600080fd5b6000600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561139857600080fd5b6000600c6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561140857600080fd5b6000600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561147857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114d357600080fd5b600754601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561159357600080fd5b505af11580156115a7573d6000803e3d6000fd5b505050506040513d60208110156115bd57600080fd5b81019080805190602001909291905050501415156115da57600080fd5b600454600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600554600c6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600554604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16118c7611fc5565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600a5481565b600e6020528060005260406000206000915090505481565b600080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561196257600080fd5b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421180156119ef57506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b905090565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a9157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600f54141515611b6057600080fd5b6000600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515611bd057600080fd5b6000600c6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515611c4057600080fd5b6000600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515611cb057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d0b57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611e2857600080fd5b505af1158015611e3c573d6000803e3d6000fd5b505050506040513d6020811015611e5257600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ee857600080fd5b505af1158015611efc573d6000803e3d6000fd5b505050506040513d6020811015611f1257600080fd5b81019080805190602001909291905050501515611f2e57600080fd5b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000828211151515611f6457fe5b818303905092915050565b6000806000841415611f845760009150611fa3565b8284029050828482811515611f9557fe5b04141515611f9f57fe5b8091505b5092915050565b6000808284811515611fb857fe5b0490508091505092915050565b6000600f54141515611fd657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561203157600080fd5b42600f8190555061204f600854600f546121e790919063ffffffff16565b600d6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120cb600a54600f546121e790919063ffffffff16565b600d6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612147600b54600f546121e790919063ffffffff16565b600d6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f032bc66be43dbccb7487781d168eb7bda224628a3b2c3388bdf69b532a3a1611600f546040518082815260200191505060405180910390a1565b60008082840190508381101515156121fb57fe5b80915050929150505600a165627a7a72305820fda00117dc6b24cea54c3cc73bf2865aa3552860b0f6a09bb8cc9453be82e3b10029000000000000000000000000fe5f141bf94fe84bc28ded0ab966c16b17490657
Deployed Bytecode
0x608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d0a19011461015957806312b58349146101845780632549e0b1146101af5780633743f0bf146101da57806338dacaab146102055780634fb0a3cd1461023057806352a9039c146102475780636880ff5b1461029e5780636f4618d8146102f557806379203dc4146103205780637ae2aa341461034b5780637b777517146103765780637f76b223146103a15780638da5cb5b146103f85780639d9afce91461044f5780639f83008a14610466578063abaa9916146104bd578063aede4680146104d4578063b21634821461052b578063b3a0e18814610556578063c884ef8314610581578063c9b0d97b146105d8578063dc32c72f14610607578063f2fde38b14610632578063f85b216014610675578063fc0c546a1461068c575b600080fd5b34801561016557600080fd5b5061016e6106e3565b6040518082815260200191505060405180910390f35b34801561019057600080fd5b506101996106e9565b6040518082815260200191505060405180910390f35b3480156101bb57600080fd5b506101c46107e8565b6040518082815260200191505060405180910390f35b3480156101e657600080fd5b506101ef6108cd565b6040518082815260200191505060405180910390f35b34801561021157600080fd5b5061021a6108d3565b6040518082815260200191505060405180910390f35b34801561023c57600080fd5b506102456108d9565b005b34801561025357600080fd5b50610288600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610da7565b6040518082815260200191505060405180910390f35b3480156102aa57600080fd5b506102b3610dbf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561030157600080fd5b5061030a610de5565b6040518082815260200191505060405180910390f35b34801561032c57600080fd5b50610335610deb565b6040518082815260200191505060405180910390f35b34801561035757600080fd5b50610360610df1565b6040518082815260200191505060405180910390f35b34801561038257600080fd5b5061038b610efa565b6040518082815260200191505060405180910390f35b3480156103ad57600080fd5b506103e2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f00565b6040518082815260200191505060405180910390f35b34801561040457600080fd5b5061040d610f18565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561045b57600080fd5b50610464610f3d565b005b34801561047257600080fd5b5061047b6112f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c957600080fd5b506104d2611317565b005b3480156104e057600080fd5b506104e96118c9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053757600080fd5b506105406118ef565b6040518082815260200191505060405180910390f35b34801561056257600080fd5b5061056b6118f5565b6040518082815260200191505060405180910390f35b34801561058d57600080fd5b506105c2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118fb565b6040518082815260200191505060405180910390f35b3480156105e457600080fd5b506105ed611913565b604051808215151515815260200191505060405180910390f35b34801561061357600080fd5b5061061c6119f4565b6040518082815260200191505060405180910390f35b34801561063e57600080fd5b50610673600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119fa565b005b34801561068157600080fd5b5061068a611b4f565b005b34801561069857600080fd5b506106a1611f30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60065481565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050506040513d60208110156107d257600080fd5b8101908080519060200190929190505050905090565b600080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561083757600080fd5b6108c8600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f5690919063ffffffff16565b905090565b60045481565b60085481565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561093a57600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561098857600080fd5b6000600f5411151561099957600080fd5b6109a1610df1565b9250610a2b600954610a1d600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486611f6f90919063ffffffff16565b611faa90919063ffffffff16565b9150600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a9d57600080fd5b81600e6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515610b0c57600080fd5b610b80600e6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f5690919063ffffffff16565b905081600e6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610ccf57600080fd5b505af1158015610ce3573d6000803e3d6000fd5b505050506040513d6020811015610cf957600080fd5b81019080805190602001909291905050501515610d1557600080fd5b7fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1505050565b600c6020528060005260406000206000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60055481565b60075481565b6000806000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e5257600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515610ea057600080fd5b610eb7600954600854611faa90919063ffffffff16565b9150610ee082610ed2600f5442611f5690919063ffffffff16565b611faa90919063ffffffff16565b9050600954811115610ef25760095490505b809250505090565b60095481565b600d6020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610fe95750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610ff457600080fd5b6000600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561104257600080fd5b6000600f5411151561105357600080fd5b339150600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421115156110a357600080fd5b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156110f157600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561123c57600080fd5b505af1158015611250573d6000803e3d6000fd5b505050506040513d602081101561126657600080fd5b8101908080519060200190929190505050151561128257600080fd5b7fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f5414151561132857600080fd5b6000600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561139857600080fd5b6000600c6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561140857600080fd5b6000600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561147857600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114d357600080fd5b600754601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561159357600080fd5b505af11580156115a7573d6000803e3d6000fd5b505050506040513d60208110156115bd57600080fd5b81019080805190602001909291905050501415156115da57600080fd5b600454600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600554600c6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600654600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600554604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a17f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a16118c7611fc5565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b600a5481565b600e6020528060005260406000206000915090505481565b600080600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411151561196257600080fd5b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421180156119ef57506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b905090565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a5557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a9157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600f54141515611b6057600080fd5b6000600c6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515611bd057600080fd5b6000600c6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515611c4057600080fd5b6000600c6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515611cb057600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d0b57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611e2857600080fd5b505af1158015611e3c573d6000803e3d6000fd5b505050506040513d6020811015611e5257600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611ee857600080fd5b505af1158015611efc573d6000803e3d6000fd5b505050506040513d6020811015611f1257600080fd5b81019080805190602001909291905050501515611f2e57600080fd5b565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000828211151515611f6457fe5b818303905092915050565b6000806000841415611f845760009150611fa3565b8284029050828482811515611f9557fe5b04141515611f9f57fe5b8091505b5092915050565b6000808284811515611fb857fe5b0490508091505092915050565b6000600f54141515611fd657600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561203157600080fd5b42600f8190555061204f600854600f546121e790919063ffffffff16565b600d6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120cb600a54600f546121e790919063ffffffff16565b600d6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612147600b54600f546121e790919063ffffffff16565b600d6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f032bc66be43dbccb7487781d168eb7bda224628a3b2c3388bdf69b532a3a1611600f546040518082815260200191505060405180910390a1565b60008082840190508381101515156121fb57fe5b80915050929150505600a165627a7a72305820fda00117dc6b24cea54c3cc73bf2865aa3552860b0f6a09bb8cc9453be82e3b10029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fe5f141bf94fe84bc28ded0ab966c16b17490657
-----Decoded View---------------
Arg [0] : _token (address): 0xfe5F141Bf94fE84bC28deD0AB966c16B17490657
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000fe5f141bf94fe84bc28ded0ab966c16b17490657
Swarm Source
bzzr://fda00117dc6b24cea54c3cc73bf2865aa3552860b0f6a09bb8cc9453be82e3b1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.