Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,315 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 5020020 | 2519 days ago | IN | 0.04990259 ETH | 0.00087834 | ||||
Transfer | 5020013 | 2519 days ago | IN | 0.05898093 ETH | 0.00087834 | ||||
Transfer | 5019991 | 2519 days ago | IN | 0.06805927 ETH | 0.00087834 | ||||
Transfer | 5019983 | 2519 days ago | IN | 0.06893762 ETH | 0.00087834 | ||||
Transfer | 5019973 | 2519 days ago | IN | 0.08123762 ETH | 0.000861 | ||||
Withdraw | 4983032 | 2525 days ago | IN | 0 ETH | 0.00296049 | ||||
Transfer | 4955289 | 2530 days ago | IN | 0.1 ETH | 0.00021159 | ||||
Transfer | 4947462 | 2531 days ago | IN | 2.32 ETH | 0.0036 | ||||
Transfer | 4947462 | 2531 days ago | IN | 0.09 ETH | 0.0036 | ||||
Transfer | 4947462 | 2531 days ago | IN | 9.99 ETH | 0.0036 | ||||
Transfer | 4947462 | 2531 days ago | IN | 0.12324 ETH | 0.0036 | ||||
Transfer | 4947462 | 2531 days ago | IN | 10.49 ETH | 0.0036 | ||||
Transfer | 4947462 | 2531 days ago | IN | 3.5156 ETH | 0.0036 | ||||
Transfer | 4945497 | 2532 days ago | IN | 0.8 ETH | 0 | ||||
Claim Ownership | 4942224 | 2532 days ago | IN | 0 ETH | 0.00089576 | ||||
Ownable | 4942207 | 2532 days ago | IN | 0 ETH | 0.00090577 | ||||
Transfer | 4939717 | 2533 days ago | IN | 3.5156 ETH | 0.005292 | ||||
Transfer | 4939716 | 2533 days ago | IN | 0.09 ETH | 0.005292 | ||||
Transfer | 4939715 | 2533 days ago | IN | 0.12324 ETH | 0.005292 | ||||
Transfer | 4939715 | 2533 days ago | IN | 10.49 ETH | 0.005292 | ||||
Transfer | 4939715 | 2533 days ago | IN | 9.99 ETH | 0.005292 | ||||
Transfer | 4939714 | 2533 days ago | IN | 2.32 ETH | 0.005292 | ||||
Transfer | 4938519 | 2533 days ago | IN | 0.19184586 ETH | 0.00004144 | ||||
Transfer | 4937913 | 2533 days ago | IN | 0.1 ETH | 0.00044988 | ||||
Transfer | 4937775 | 2533 days ago | IN | 0.05 ETH | 0.00331596 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
4983032 | 2525 days ago | 2,000 ETH | ||||
4955289 | 2530 days ago | 0.1 ETH | ||||
4945497 | 2532 days ago | 0.8 ETH | ||||
4938519 | 2533 days ago | 0.19184586 ETH | ||||
4937775 | 2533 days ago | 0.05 ETH | ||||
4937579 | 2533 days ago | 0.21914614 ETH | ||||
4937567 | 2533 days ago | 1 ETH | ||||
4937558 | 2533 days ago | 0.095 ETH | ||||
4937551 | 2533 days ago | 0.15 ETH | ||||
4937549 | 2533 days ago | 0.01100668 ETH | ||||
4937457 | 2533 days ago | 5.2 ETH | ||||
4937418 | 2533 days ago | 23 ETH | ||||
4937387 | 2533 days ago | 23.5 ETH | ||||
4936800 | 2533 days ago | 3 ETH | ||||
4936780 | 2533 days ago | 1.993 ETH | ||||
4936759 | 2533 days ago | 2.5 ETH | ||||
4936660 | 2533 days ago | 0.59999999 ETH | ||||
4936646 | 2533 days ago | 10 ETH | ||||
4936638 | 2533 days ago | 5 ETH | ||||
4936614 | 2533 days ago | 1.38999999 ETH | ||||
4936585 | 2533 days ago | 13 ETH | ||||
4936545 | 2533 days ago | 10 ETH | ||||
4936529 | 2533 days ago | 7.5 ETH | ||||
4936526 | 2533 days ago | 17.5 ETH | ||||
4936526 | 2533 days ago | 5 ETH |
Loading...
Loading
This contract contains unverified libraries: Limits
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
Presale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-01-19 */ pragma solidity ^0.4.18; // File: zeppelin-solidity/contracts/math/SafeMath.sol /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { 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; } 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; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } // File: contracts/Discounts.sol library Discounts { using SafeMath for uint256; /************************************************************************** * TYPES *************************************************************************/ /* * Top-level struct for grouping of tiers with a base purchase rate */ struct Collection { Tier[] tiers; // number of tokens per wei uint256 baseRate; } /* * Struct for a given tier - discount and availability */ struct Tier { // discount the set purchase price, expressed in basis points (‱) // range (0‱ .. 10,000‱) corresponds to (0.00% .. 100.00%) uint256 discount; // number of remaining available tokens in tier uint256 available; } // upper-bound of basis point scale uint256 public constant MAX_DISCOUNT = 10000; /************************************************************************** * CREATE *************************************************************************/ /* * @dev Add a new tier at the end of the list * @param _discount - Discount in basis points * @param _available - Available supply at tier */ function addTier( Collection storage self, uint256 _discount, uint256 _available ) internal { self.tiers.push(Tier({ discount: _discount, available: _available })); } /************************************************************************** * PURCHASE *************************************************************************/ /* * @dev Subtracts supply from tiers starting at a minimum, using up funds * @param _amount - Maximum number of tokens to purchase * @param _funds - Allowance in Wei * @param _minimumTier - Minimum tier to start purchasing from * @return Total tokens purchased and remaining funds in wei */ function purchaseTokens( Collection storage self, uint256 _amount, uint256 _funds, uint256 _minimumTier ) internal returns ( uint256 purchased, uint256 remaining ) { uint256 issue = 0; // tracks total tokens to issue remaining = _funds; uint256 available; // var for available tokens at tier uint256 spend; // amount spent at tier uint256 affordable; // var for # funds can pay for at tier uint256 purchase; // var for # to purchase at tier // for each tier starting at minimum // draw from the sent funds and count tokens to issue for (var i = _minimumTier; i < self.tiers.length && issue < _amount; i++) { // get the available tokens left at each tier available = self.tiers[i].available; // compute the maximum tokens that the funds can pay for affordable = _computeTokensPurchasedAtTier(self, i, remaining); // either purchase what the funds can afford, or the whole supply // at the tier if (affordable < available) { purchase = affordable; } else { purchase = available; } // limit the amount purchased up to specified amount // use safemath here in case of unknown overflow risk if (purchase.add(issue) > _amount) { purchase = _amount.sub(issue); } spend = _computeCostForTokensAtTier(self, i, purchase); // decrease available supply at tier self.tiers[i].available -= purchase; // increase tokens to issue issue += purchase; // decrement funds to proceed remaining -= spend; } return (issue, remaining); } /************************************************************************** * PRICE MATH *************************************************************************/ // @return total number of tokens for an amount of wei, discount-adjusted function _computeTokensPurchasedAtTier( Collection storage self, uint256 _tier, uint256 _wei ) private view returns (uint256) { var paidBasis = MAX_DISCOUNT.sub(self.tiers[_tier].discount); return _wei.mul(self.baseRate).mul(MAX_DISCOUNT) / paidBasis; } // @return cost in wei for that many tokens function _computeCostForTokensAtTier( Collection storage self, uint256 _tier, uint256 _tokens ) private view returns (uint256) { var paidBasis = MAX_DISCOUNT.sub(self.tiers[_tier].discount); var numerator = _tokens.mul(paidBasis); var denominator = MAX_DISCOUNT.mul(self.baseRate); var floor = _tokens.mul(paidBasis).div( MAX_DISCOUNT.mul(self.baseRate) ); // must round up cost to next wei (cause token computation rounds down) if (numerator % denominator != 0) { floor = floor + 1; } return floor; } } // File: contracts/Limits.sol library Limits { using SafeMath for uint256; struct PurchaseRecord { uint256 blockNumber; uint256 amount; } struct Window { uint256 amount; // # of tokens uint256 duration; // # of blocks mapping (address => PurchaseRecord) purchases; } /* * Record a purchase towards a purchaser's cap limit * @dev resets the purchaser's cap if the window duration has been met * @param _participant - purchaser * @param _amount - token amount of new purchase */ function recordPurchase( Window storage self, address _participant, uint256 _amount ) internal { var blocksLeft = getBlocksUntilReset(self, _participant); var record = self.purchases[_participant]; if (blocksLeft == 0) { record.amount = _amount; record.blockNumber = block.number; } else { record.amount = record.amount.add(_amount); } } /* * Retrieve the current limit for a given participant, based on previous * purchase history * @param _participant - Purchaser * @return amount of tokens left for participant with cap */ function getLimit(Window storage self, address _participant) public view returns (uint256 _amount) { var blocksLeft = getBlocksUntilReset(self, _participant); if (blocksLeft == 0) { return self.amount; } else { return self.amount.sub(self.purchases[_participant].amount); } } function getBlocksUntilReset(Window storage self, address _participant) public view returns (uint256 _blocks) { var expires = self.purchases[_participant].blockNumber + self.duration; if (block.number > expires) { return 0; } else { return expires - block.number; } } } // File: zeppelin-solidity/contracts/ownership/Ownable.sol /** * @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; } } // File: zeppelin-solidity/contracts/ownership/Claimable.sol /** * @title Claimable * @dev Extension for the Ownable contract, where the ownership needs to be claimed. * This allows the new owner to accept the transfer. */ contract Claimable is Ownable { address public pendingOwner; /** * @dev Modifier throws if called by any account other than the pendingOwner. */ modifier onlyPendingOwner() { require(msg.sender == pendingOwner); _; } /** * @dev Allows the current owner to set the pendingOwner address. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { pendingOwner = newOwner; } /** * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() onlyPendingOwner public { OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = address(0); } } // File: contracts/SeeToken.sol /** * @title SEE Token * Not a full ERC20 token - prohibits transferring. Serves as a record of * account, to redeem for real tokens after launch. */ contract SeeToken is Claimable { using SafeMath for uint256; string public constant name = "See Presale Token"; string public constant symbol = "SEE"; uint8 public constant decimals = 18; uint256 public totalSupply; mapping (address => uint256) balances; event Issue(address to, uint256 amount); /** * @dev Issue new tokens * @param _to The address that will receive the minted tokens * @param _amount the amount of new tokens to issue */ function issue(address _to, uint256 _amount) onlyOwner public { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Issue(_to, _amount); } /** * @dev Get the balance for a particular token holder * @param _holder The token holder's address * @return The holder's balance */ function balanceOf(address _holder) public view returns (uint256 balance) { balance = balances[_holder]; } } // File: zeppelin-solidity/contracts/lifecycle/Pausable.sol /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() onlyOwner whenNotPaused public { paused = true; Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() onlyOwner whenPaused public { paused = false; Unpause(); } } // File: contracts/Presale.sol contract Presale is Claimable, Pausable { using Discounts for Discounts.Collection; using Limits for Limits.Window; struct Participant { bool authorized; uint256 minimumTier; } /************************************************************************** * STORAGE / EVENTS *************************************************************************/ SeeToken token; Discounts.Collection discounts; Limits.Window cap; mapping (address => Participant) participants; event Tier(uint256 discount, uint256 available); /************************************************************************** * CONSTRUCTOR / LIFECYCLE *************************************************************************/ function Presale(address _token) public { token = SeeToken(_token); paused = true; } /* * @dev (Done as part of migration) Claims ownership of token contract */ function claimToken() public { token.claimOwnership(); } /* * Allow purchase * @dev while paused */ function unpause() onlyOwner whenPaused whenRateSet whenCapped whenOwnsToken public { super.unpause(); } /************************************************************************** * ADMIN INTERFACE *************************************************************************/ /* * Set the base purchase rate for the token * @param _purchaseRate - number of tokens granted per wei */ function setRate(uint256 _purchaseRate) onlyOwner whenPaused public { discounts.baseRate = _purchaseRate; } /* * Specify purchasing limits for a single account: the limit of tokens * that a participant may purchase in a set amount of time (blocks) * @param _amount - Number of tokens * @param _duration - Number of blocks */ function limitPurchasing(uint256 _amount, uint256 _duration) onlyOwner whenPaused public { cap.amount = _amount; cap.duration = _duration; } /* * Add a tier with a given discount and available supply * @param _discount - Discount in basis points * @param _available - Available supply at tier */ function addTier(uint256 _discount, uint256 _available) onlyOwner whenPaused public { discounts.addTier(_discount, _available); Tier(_discount, _available); } /* * Authorize a group of participants for a tier * @param _minimumTier - minimum tier for list of participants * @param _participants - array of authorized addresses */ function authorizeForTier(uint256 _minimumTier, address[] _authorized) onlyOwner public { for (uint256 i = 0; i < _authorized.length; i++) { participants[_authorized[i]] = Participant({ authorized: true, minimumTier: _minimumTier }); } } /* * Withdraw balance from presale */ function withdraw() onlyOwner public { owner.transfer(this.balance); } /************************************************************************** * PURCHASE INTERFACE *************************************************************************/ /* * Fallback (default) function. * @dev Forwards to `purchaseTokens()` */ function () public payable { purchaseTokens(); } /* * Public purchase interface for authorized Dragon Holders * @dev Purchases tokens starting in authorized minimum tier */ function purchaseTokens() onlyAuthorized whenNotPaused public payable { var limit = cap.getLimit(msg.sender); var (purchased, refund) = discounts.purchaseTokens( limit, msg.value, participants[msg.sender].minimumTier ); cap.recordPurchase(msg.sender, purchased); // issue new tokens token.issue(msg.sender, purchased); // if there are funds left, send refund if (refund > 0) { msg.sender.transfer(refund); } } /************************************************************************** * PRICING / AVAILABILITY - VIEW INTERFACE *************************************************************************/ /* * Get terms for purchasing limit window * @return number of tokens and duration in blocks */ function getPurchaseLimit() public view returns (uint256 _amount, uint256 _duration) { _amount = cap.amount; _duration = cap.duration; } /* * Get tiers currently set up, with discounts and available supplies * @return array of tuples (discount, available) */ function getTiers() public view returns (uint256[2][]) { var records = discounts.tiers; uint256[2][] memory tiers = new uint256[2][](records.length); for (uint256 i = 0; i < records.length; i++) { tiers[i][0] = records[i].discount; tiers[i][1] = records[i].available; } return tiers; } /* * Get available supply for each tier for a given participant * @dev starts at minimum tier for participant (requiring auth) * @return available supply by tier index, zeroes for non-auth */ function getAvailability(address _participant) public view returns (uint256[]) { var participant = participants[_participant]; uint256 minimumTier = participant.minimumTier; // minor HACK - if the participant isn't authorized, just set the // minimum tier above the bounds if (!participant.authorized) { minimumTier = discounts.tiers.length; } uint256[] memory tiers = new uint256[](discounts.tiers.length); for (uint256 i = minimumTier; i < tiers.length; i++) { tiers[i] = discounts.tiers[i].available; } return tiers; } /************************************************************************** * MODIFIERS *************************************************************************/ /* * @dev require participant is whitelist-authorized */ modifier onlyAuthorized() { require(participants[msg.sender].authorized); _; } /* * @dev baseRate will default to 0 */ modifier whenRateSet() { require(discounts.baseRate != 0); _; } /* * @dev to prevent accidentally capping at 0 */ modifier whenCapped() { require(cap.amount != 0); _; } /* * @dev asserts zeppelin Claimable workflow is finalized */ modifier whenOwnsToken() { require(token.owner() == address(this)); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"getPurchaseLimit","outputs":[{"name":"_amount","type":"uint256"},{"name":"_duration","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_participant","type":"address"}],"name":"getAvailability","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"purchaseTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_purchaseRate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_discount","type":"uint256"},{"name":"_available","type":"uint256"}],"name":"addTier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"limitPurchasing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTiers","outputs":[{"name":"","type":"uint256[2][]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minimumTier","type":"uint256"},{"name":"_authorized","type":"address[]"}],"name":"authorizeForTier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"discount","type":"uint256"},{"indexed":false,"name":"available","type":"uint256"}],"name":"Tier","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60606040526000600160146101000a81548160ff021916908315150217905550341561002a57600080fd5b604051602080611a0883398101604052808051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060146101000a81548160ff02191690831515021790555050611917806100f16000396000f3006060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630adde487146100fb5780632b1c511f1461012b5780633290ce29146101b957806334fcf437146101c35780633ccfd60b146101e65780633f4ba83a146101fb5780634451d89f1461021057806345350759146102255780634e71e0c8146102515780635c975abb146102665780638456cb59146102935780638da5cb5b146102a8578063ce233452146102fd578063de17057014610329578063e303e81e146103b6578063e30c397814610419578063f2fde38b1461046e575b6100f96104a7565b005b341561010657600080fd5b61010e610785565b604051808381526020018281526020019250505060405180910390f35b341561013657600080fd5b610162600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061079c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101a557808201518184015260208101905061018a565b505050509050019250505060405180910390f35b6101c16104a7565b005b34156101ce57600080fd5b6101e460048080359060200190919050506108ac565b005b34156101f157600080fd5b6101f961092f565b005b341561020657600080fd5b61020e610a04565b005b341561021b57600080fd5b610223610b90565b005b341561023057600080fd5b61024f6004808035906020019091908035906020019091905050610c2b565b005b341561025c57600080fd5b610264610cfa565b005b341561027157600080fd5b610279610e99565b604051808215151515815260200191505060405180910390f35b341561029e57600080fd5b6102a6610eac565b005b34156102b357600080fd5b6102bb610f6b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030857600080fd5b6103276004808035906020019091908035906020019091905050610f90565b005b341561033457600080fd5b61033c61101e565b60405180806020018281038252838181518152602001915080516000925b818410156103a557828490602001906020020151600260200280838360005b83811015610394578082015181840152602081019050610379565b50505050905001926001019261035a565b925050509250505060405180910390f35b34156103c157600080fd5b610417600480803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611149565b005b341561042457600080fd5b61042c611261565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047957600080fd5b6104a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611287565b005b6000806000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151561050757600080fd5b600160149054906101000a900460ff1615151561052357600080fd5b600573f446b831f4ebcc8777375592ba9f03124401f2e863ea3657949091336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15156105cd57600080fd5b6102c65a03f415156105de57600080fd5b5050506040518051905092506106448334600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546003611326909392919063ffffffff16565b9150915061065e338360056114369092919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663867904b433846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561072257600080fd5b6102c65a03f1151561073357600080fd5b5050506000811115610780573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561077f57600080fd5b5b505050565b600080600560000154915060056001015490509091565b6107a461183b565b6000806107af61183b565b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350836001015492508360000160009054906101000a900460ff16151561081d5760036000018054905092505b6003600001805490506040518059106108335750595b908082528060200260200182016040525091508290505b81518110156108a05760036000018181548110151561086557fe5b906000526020600020906002020160010154828281518110151561088557fe5b9060200190602002018181525050808060010191505061084a565b81945050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090757600080fd5b600160149054906101000a900460ff16151561092257600080fd5b8060036001018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610a0257600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a5f57600080fd5b600160149054906101000a900460ff161515610a7a57600080fd5b600060036001015414151515610a8f57600080fd5b600060056000015414151515610aa457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610b4957600080fd5b6102c65a03f11515610b5a57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610b8657600080fd5b610b8e6114cf565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e71e0c86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c1557600080fd5b6102c65a03f11515610c2657600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c8657600080fd5b600160149054906101000a900460ff161515610ca157600080fd5b610cb78282600361158e9092919063ffffffff16565b7fd4fd4ec04c705d8ac37c0c8d4e820002cfa95e7474c1b2c4bf7aa3d747db41d38282604051808381526020018281526020019250505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0757600080fd5b600160149054906101000a900460ff16151515610f2357600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610feb57600080fd5b600160149054906101000a900460ff16151561100657600080fd5b81600560000181905550806005600101819055505050565b61102661184f565b600061103061184f565b600060036000019250828054905060405180591061104b5750595b90808252806020026020018201604052801561108157816020015b61106e611863565b8152602001906001900390816110665790505b509150600090505b82805490508110156111405782818154811015156110a357fe5b90600052602060002090600202016000015482828151811015156110c357fe5b9060200190602002015160006002811015156110db57fe5b60200201818152505082818154811015156110f257fe5b906000526020600020906002020160010154828281518110151561111257fe5b90602001906020020151600160028110151561112a57fe5b6020020181815250508080600101915050611089565b81935050505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a657600080fd5b600090505b815181101561125c576040805190810160405280600115158152602001848152506008600084848151811015156111de57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505080806001019150506111ab565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112e257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080600080600095508996508890505b8b600001805490508110801561135257508a86105b15611421578b6000018181548110151561136857fe5b90600052602060002090600202016001015494506113878c82896115ea565b9250848310156113995782915061139d565b8491505b8a6113b1878461166690919063ffffffff16565b11156113cd576113ca868c61168490919063ffffffff16565b91505b6113d88c828461169d565b9350818c600001828154811015156113ec57fe5b90600052602060002090600202016001016000828254039250508190555081860195508387039650808060010191505061133d565b85879750975050505050505094509492505050565b6000806114438585611777565b91508460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008214156114a8578281600101819055504381600001819055506114c8565b6114bf83826001015461166690919063ffffffff16565b81600101819055505b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561152a57600080fd5b600160149054906101000a900460ff16151561154557600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b8260000180548060010182816115a4919061188a565b9160005260206000209060020201600060408051908101604052808681526020018581525090919091506000820151816000015560208201518160010155505050505050565b600080611624856000018581548110151561160157fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b9050806116526127106116448860010154876117e590919063ffffffff16565b6117e590919063ffffffff16565b81151561165b57fe5b049150509392505050565b600080828401905083811015151561167a57fe5b8091505092915050565b600082821115151561169257fe5b818303905092915050565b60008060008060006116dc88600001888154811015156116b957fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b93506116f184876117e590919063ffffffff16565b925061170c88600101546127106117e590919063ffffffff16565b915061174b61172a89600101546127106117e590919063ffffffff16565b61173d86896117e590919063ffffffff16565b61182090919063ffffffff16565b90506000828481151561175a57fe5b06141515611769576001810190505b809450505050509392505050565b60008083600101548460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154019050804311156117d857600091506117de565b43810391505b5092915050565b60008060008414156117fa5760009150611819565b828402905082848281151561180b57fe5b0414151561181557fe5b8091505b5092915050565b600080828481151561182e57fe5b0490508091505092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b60408051908101604052806002905b60008152602001906001900390816118725790505090565b8154818355818115116118b7576002028160020283600052602060002091820191016118b691906118bc565b5b505050565b6118e891905b808211156118e4576000808201600090556001820160009055506002016118c2565b5090565b905600a165627a7a723058208fcc31a9c37e86e65f81c61639d014235039b2d4625fb786bf2573855c97088f00290000000000000000000000006c78a953b5aad0bc991b234970d599e5101c6e5d
Deployed Bytecode
0x6060604052600436106100f1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630adde487146100fb5780632b1c511f1461012b5780633290ce29146101b957806334fcf437146101c35780633ccfd60b146101e65780633f4ba83a146101fb5780634451d89f1461021057806345350759146102255780634e71e0c8146102515780635c975abb146102665780638456cb59146102935780638da5cb5b146102a8578063ce233452146102fd578063de17057014610329578063e303e81e146103b6578063e30c397814610419578063f2fde38b1461046e575b6100f96104a7565b005b341561010657600080fd5b61010e610785565b604051808381526020018281526020019250505060405180910390f35b341561013657600080fd5b610162600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061079c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156101a557808201518184015260208101905061018a565b505050509050019250505060405180910390f35b6101c16104a7565b005b34156101ce57600080fd5b6101e460048080359060200190919050506108ac565b005b34156101f157600080fd5b6101f961092f565b005b341561020657600080fd5b61020e610a04565b005b341561021b57600080fd5b610223610b90565b005b341561023057600080fd5b61024f6004808035906020019091908035906020019091905050610c2b565b005b341561025c57600080fd5b610264610cfa565b005b341561027157600080fd5b610279610e99565b604051808215151515815260200191505060405180910390f35b341561029e57600080fd5b6102a6610eac565b005b34156102b357600080fd5b6102bb610f6b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030857600080fd5b6103276004808035906020019091908035906020019091905050610f90565b005b341561033457600080fd5b61033c61101e565b60405180806020018281038252838181518152602001915080516000925b818410156103a557828490602001906020020151600260200280838360005b83811015610394578082015181840152602081019050610379565b50505050905001926001019261035a565b925050509250505060405180910390f35b34156103c157600080fd5b610417600480803590602001909190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611149565b005b341561042457600080fd5b61042c611261565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561047957600080fd5b6104a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611287565b005b6000806000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16151561050757600080fd5b600160149054906101000a900460ff1615151561052357600080fd5b600573f446b831f4ebcc8777375592ba9f03124401f2e863ea3657949091336000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15156105cd57600080fd5b6102c65a03f415156105de57600080fd5b5050506040518051905092506106448334600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546003611326909392919063ffffffff16565b9150915061065e338360056114369092919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663867904b433846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b151561072257600080fd5b6102c65a03f1151561073357600080fd5b5050506000811115610780573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561077f57600080fd5b5b505050565b600080600560000154915060056001015490509091565b6107a461183b565b6000806107af61183b565b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209350836001015492508360000160009054906101000a900460ff16151561081d5760036000018054905092505b6003600001805490506040518059106108335750595b908082528060200260200182016040525091508290505b81518110156108a05760036000018181548110151561086557fe5b906000526020600020906002020160010154828281518110151561088557fe5b9060200190602002018181525050808060010191505061084a565b81945050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561090757600080fd5b600160149054906101000a900460ff16151561092257600080fd5b8060036001018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610a0257600080fd5b565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a5f57600080fd5b600160149054906101000a900460ff161515610a7a57600080fd5b600060036001015414151515610a8f57600080fd5b600060056000015414151515610aa457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610b4957600080fd5b6102c65a03f11515610b5a57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610b8657600080fd5b610b8e6114cf565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e71e0c86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b1515610c1557600080fd5b6102c65a03f11515610c2657600080fd5b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c8657600080fd5b600160149054906101000a900460ff161515610ca157600080fd5b610cb78282600361158e9092919063ffffffff16565b7fd4fd4ec04c705d8ac37c0c8d4e820002cfa95e7474c1b2c4bf7aa3d747db41d38282604051808381526020018281526020019250505060405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d5657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0757600080fd5b600160149054906101000a900460ff16151515610f2357600080fd5b60018060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610feb57600080fd5b600160149054906101000a900460ff16151561100657600080fd5b81600560000181905550806005600101819055505050565b61102661184f565b600061103061184f565b600060036000019250828054905060405180591061104b5750595b90808252806020026020018201604052801561108157816020015b61106e611863565b8152602001906001900390816110665790505b509150600090505b82805490508110156111405782818154811015156110a357fe5b90600052602060002090600202016000015482828151811015156110c357fe5b9060200190602002015160006002811015156110db57fe5b60200201818152505082818154811015156110f257fe5b906000526020600020906002020160010154828281518110151561111257fe5b90602001906020020151600160028110151561112a57fe5b6020020181815250508080600101915050611089565b81935050505090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a657600080fd5b600090505b815181101561125c576040805190810160405280600115158152602001848152506008600084848151811015156111de57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505080806001019150506111ab565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112e257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600080600080600080600095508996508890505b8b600001805490508110801561135257508a86105b15611421578b6000018181548110151561136857fe5b90600052602060002090600202016001015494506113878c82896115ea565b9250848310156113995782915061139d565b8491505b8a6113b1878461166690919063ffffffff16565b11156113cd576113ca868c61168490919063ffffffff16565b91505b6113d88c828461169d565b9350818c600001828154811015156113ec57fe5b90600052602060002090600202016001016000828254039250508190555081860195508387039650808060010191505061133d565b85879750975050505050505094509492505050565b6000806114438585611777565b91508460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008214156114a8578281600101819055504381600001819055506114c8565b6114bf83826001015461166690919063ffffffff16565b81600101819055505b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561152a57600080fd5b600160149054906101000a900460ff16151561154557600080fd5b6000600160146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b8260000180548060010182816115a4919061188a565b9160005260206000209060020201600060408051908101604052808681526020018581525090919091506000820151816000015560208201518160010155505050505050565b600080611624856000018581548110151561160157fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b9050806116526127106116448860010154876117e590919063ffffffff16565b6117e590919063ffffffff16565b81151561165b57fe5b049150509392505050565b600080828401905083811015151561167a57fe5b8091505092915050565b600082821115151561169257fe5b818303905092915050565b60008060008060006116dc88600001888154811015156116b957fe5b90600052602060002090600202016000015461271061168490919063ffffffff16565b93506116f184876117e590919063ffffffff16565b925061170c88600101546127106117e590919063ffffffff16565b915061174b61172a89600101546127106117e590919063ffffffff16565b61173d86896117e590919063ffffffff16565b61182090919063ffffffff16565b90506000828481151561175a57fe5b06141515611769576001810190505b809450505050509392505050565b60008083600101548460020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154019050804311156117d857600091506117de565b43810391505b5092915050565b60008060008414156117fa5760009150611819565b828402905082848281151561180b57fe5b0414151561181557fe5b8091505b5092915050565b600080828481151561182e57fe5b0490508091505092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b60408051908101604052806002905b60008152602001906001900390816118725790505090565b8154818355818115116118b7576002028160020283600052602060002091820191016118b691906118bc565b5b505050565b6118e891905b808211156118e4576000808201600090556001820160009055506002016118c2565b5090565b905600a165627a7a723058208fcc31a9c37e86e65f81c61639d014235039b2d4625fb786bf2573855c97088f0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006c78a953b5aad0bc991b234970d599e5101c6e5d
-----Decoded View---------------
Arg [0] : _token (address): 0x6c78A953b5aAd0bc991B234970D599E5101c6E5d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c78a953b5aad0bc991b234970d599e5101c6e5d
Swarm Source
bzzr://8fcc31a9c37e86e65f81c61639d014235039b2d4625fb786bf2573855c97088f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.053254 | 3,832 | $204.07 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.