ERC-20
Overview
Max Total Supply
102,400,000,000 CLEAR
Holders
14,080
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
400 CLEARValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ClearToken
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-05-08 */ pragma solidity ^0.4.11; library SafeMath { function mul(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) public constant returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant 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); } contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) balances; /** * @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)); // 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 constant returns (uint256 balance) { return balances[_owner]; } } contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) 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)); uint256 _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.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 constant returns (uint256 remaining) { return allowed[_owner][_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 */ function increaseApproval (address _spender, uint _addedValue) returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } function decreaseApproval (address _spender, uint _subtractedValue) returns (bool success) { 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; } } library Bonus { uint256 constant pointMultiplier = 1e18; //100% = 1*10^18 points uint16 constant ORIGIN_YEAR = 1970; function getBonusFactor(uint256 basisTokens, uint timestamp) internal pure returns (uint256 factor) { uint256[4][5] memory factors = [[uint256(300), 400, 500, 750], [uint256(200), 300, 400, 600], [uint256(150), 250, 300, 500], [uint256(100), 150, 250, 400], [uint256(0), 100, 150, 300]]; uint[4] memory cutofftimes = [toTimestamp(2018, 3, 24), toTimestamp(2018, 4, 5), toTimestamp(2018, 5, 5), toTimestamp(2018, 6, 5)]; //compare whole tokens uint256 tokenAmount = basisTokens / pointMultiplier; //set default to the 0% bonus uint256 timeIndex = 4; uint256 amountIndex = 0; // 0.02 NZD per token = 50 tokens per NZD if (tokenAmount >= 500000000) { // >10M NZD amountIndex = 3; } else if (tokenAmount >= 100000000) { // >2M NZD amountIndex = 2; } else if (tokenAmount >= 25000000) { // >500K NZD amountIndex = 1; } else { // <500K NZD //amountIndex = 0; } uint256 maxcutoffindex = cutofftimes.length; for (uint256 i = 0; i < maxcutoffindex; i++) { if (timestamp < cutofftimes[i]) { timeIndex = i; break; } } return factors[timeIndex][amountIndex]; } // Timestamp functions based on // https://github.com/pipermerriam/ethereum-datetime/blob/master/contracts/DateTime.sol function toTimestamp(uint16 year, uint8 month, uint8 day) internal pure returns (uint timestamp) { uint16 i; // Year timestamp += (year - ORIGIN_YEAR) * 1 years; timestamp += (leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR)) * 1 days; // Month uint8[12] memory monthDayCounts; monthDayCounts[0] = 31; if (isLeapYear(year)) { monthDayCounts[1] = 29; } else { monthDayCounts[1] = 28; } monthDayCounts[2] = 31; monthDayCounts[3] = 30; monthDayCounts[4] = 31; monthDayCounts[5] = 30; monthDayCounts[6] = 31; monthDayCounts[7] = 31; monthDayCounts[8] = 30; monthDayCounts[9] = 31; monthDayCounts[10] = 30; monthDayCounts[11] = 31; for (i = 1; i < month; i++) { timestamp += monthDayCounts[i - 1] * 1 days; } // Day timestamp += (day - 1) * 1 days; // Hour, Minute, and Second are assumed as 0 (we calculate in GMT) return timestamp; } function leapYearsBefore(uint year) internal pure returns (uint) { year -= 1; return year / 4 - year / 100 + year / 400; } function isLeapYear(uint16 year) internal pure returns (bool) { if (year % 4 != 0) { return false; } if (year % 100 != 0) { return true; } if (year % 400 != 0) { return false; } return true; } } contract ClearToken is StandardToken { // data structures enum States { Initial, // deployment time ValuationSet, Ico, // whitelist addresses, accept funds, update balances Underfunded, // ICO time finished and minimal amount not raised Operational, // production phase Paused // for contract upgrades } mapping(address => uint256) public ethPossibleRefunds; uint256 public soldTokens; string public constant name = "CLEAR Token"; string public constant symbol = "CLEAR"; uint8 public constant decimals = 18; mapping(address => bool) public whitelist; address public reserves; address public stateControl; address public whitelistControl; address public withdrawControl; address public tokenAssignmentControl; States public state; uint256 public startAcceptingFundsBlock; uint256 public endTimestamp; uint256 public ETH_CLEAR; //number of tokens per ETH uint256 public constant NZD_CLEAR = 50; //fixed rate of 50 CLEAR to 1 NZD uint256 constant pointMultiplier = 1e18; //100% = 1*10^18 points uint256 public constant maxTotalSupply = 102400000000 * pointMultiplier; //102.4B tokens uint256 public constant percentForSale = 50; event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; //this creates the contract and stores the owner. it also passes in 3 addresses to be used later during the lifetime of the contract. function ClearToken( address _stateControl , address _whitelistControl , address _withdrawControl , address _tokenAssignmentControl , address _reserves ) public { stateControl = _stateControl; whitelistControl = _whitelistControl; withdrawControl = _withdrawControl; tokenAssignmentControl = _tokenAssignmentControl; moveToState(States.Initial); endTimestamp = 0; ETH_CLEAR = 0; totalSupply = maxTotalSupply; soldTokens = 0; reserves = _reserves; balances[reserves] = totalSupply; Mint(reserves, totalSupply); Transfer(0x0, reserves, totalSupply); } event Whitelisted(address addr); event StateTransition(States oldState, States newState); modifier onlyWhitelist() { require(msg.sender == whitelistControl); _; } modifier onlyStateControl() { require(msg.sender == stateControl); _; } modifier onlyTokenAssignmentControl() { require(msg.sender == tokenAssignmentControl); _; } modifier onlyWithdraw() { require(msg.sender == withdrawControl); _; } modifier requireState(States _requiredState) { require(state == _requiredState); _; } /** BEGIN ICO functions */ //this is the main funding function, it updates the balances of tokens during the ICO. //no particular incentive schemes have been implemented here //it is only accessible during the "ICO" phase. function() payable public requireState(States.Ico) { require(whitelist[msg.sender] == true); require(block.timestamp < endTimestamp); require(block.number >= startAcceptingFundsBlock); uint256 soldToTuserWithBonus = calcBonus(msg.value); issueTokensToUser(msg.sender, soldToTuserWithBonus); ethPossibleRefunds[msg.sender] = ethPossibleRefunds[msg.sender].add(msg.value); } function issueTokensToUser(address beneficiary, uint256 amount) internal { uint256 soldTokensAfterInvestment = soldTokens.add(amount); require(soldTokensAfterInvestment <= maxTotalSupply.mul(percentForSale).div(100)); balances[beneficiary] = balances[beneficiary].add(amount); balances[reserves] = balances[reserves].sub(amount); soldTokens = soldTokensAfterInvestment; Transfer(reserves, beneficiary, amount); } function calcBonus(uint256 weiAmount) constant public returns (uint256 resultingTokens) { uint256 basisTokens = weiAmount.mul(ETH_CLEAR); //percentages are integer numbers as per mill (promille) so we can accurately calculate 0.5% = 5. 100% = 1000 uint256 perMillBonus = Bonus.getBonusFactor(basisTokens, now); //100% + bonus % times original amount divided by 100%. return basisTokens.mul(per_mill + perMillBonus).div(per_mill); } uint256 constant per_mill = 1000; function moveToState(States _newState) internal { StateTransition(state, _newState); state = _newState; } // ICO contract configuration function // new_ETH_NZD is the new rate of ETH in NZD (from which to derive tokens per ETH) // newTimestamp is the number of seconds since 1970-01-01 00:00:00 GMT at which the ICO must stop. It must be set in the future. function updateEthICOVariables(uint256 _new_ETH_NZD, uint256 _newEndTimestamp) public onlyStateControl { require(state == States.Initial || state == States.ValuationSet); require(_new_ETH_NZD > 0); require(block.timestamp < _newEndTimestamp); endTimestamp = _newEndTimestamp; // initial conversion rate of ETH_CLEAR set now, this is used during the Ico phase. ETH_CLEAR = _new_ETH_NZD.mul(NZD_CLEAR); // check pointMultiplier moveToState(States.ValuationSet); } function updateETHNZD(uint256 _new_ETH_NZD) public onlyTokenAssignmentControl requireState(States.Ico) { require(_new_ETH_NZD > 0); ETH_CLEAR = _new_ETH_NZD.mul(NZD_CLEAR); } function startICO() public onlyStateControl requireState(States.ValuationSet) { require(block.timestamp < endTimestamp); startAcceptingFundsBlock = block.number; moveToState(States.Ico); } function addPresaleAmount(address beneficiary, uint256 amount) public onlyTokenAssignmentControl { require(state == States.ValuationSet || state == States.Ico); issueTokensToUser(beneficiary, amount); } function endICO() public onlyStateControl requireState(States.Ico) { finishMinting(); moveToState(States.Operational); } function anyoneEndICO() public requireState(States.Ico) { require(block.timestamp > endTimestamp); finishMinting(); moveToState(States.Operational); } function finishMinting() internal { mintingFinished = true; MintFinished(); } function addToWhitelist(address _whitelisted) public onlyWhitelist // requireState(States.Ico) { whitelist[_whitelisted] = true; Whitelisted(_whitelisted); } //emergency pause for the ICO function pause() public onlyStateControl requireState(States.Ico) { moveToState(States.Paused); } //in case we want to completely abort function abort() public onlyStateControl requireState(States.Paused) { moveToState(States.Underfunded); } //un-pause function resumeICO() public onlyStateControl requireState(States.Paused) { moveToState(States.Ico); } //in case of a failed/aborted ICO every investor can get back their money function requestRefund() public requireState(States.Underfunded) { require(ethPossibleRefunds[msg.sender] > 0); //there is no need for updateAccount(msg.sender) since the token never became active. uint256 payout = ethPossibleRefunds[msg.sender]; //reverse calculate the amount to pay out ethPossibleRefunds[msg.sender] = 0; msg.sender.transfer(payout); } //after the ico has run its course, the withdraw account can drain funds bit-by-bit as needed. function requestPayout(uint _amount) public onlyWithdraw //very important! requireState(States.Operational) { msg.sender.transfer(_amount); } //if this contract gets a balance in some other ERC20 contract - or even iself - then we can rescue it. function rescueToken(ERC20Basic _foreignToken, address _to) public onlyTokenAssignmentControl requireState(States.Operational) { _foreignToken.transfer(_to, _foreignToken.balanceOf(this)); } /** END ICO functions */ /** BEGIN ERC20 functions */ function transfer(address _to, uint256 _value) public requireState(States.Operational) returns (bool success) { return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) public requireState(States.Operational) returns (bool success) { return super.transferFrom(_from, _to, _value); } function balanceOf(address _account) public constant returns (uint256 balance) { return balances[_account]; } /** END ERC20 functions */ }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"stateControl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"weiAmount","type":"uint256"}],"name":"calcBonus","outputs":[{"name":"resultingTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"anyoneEndICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_new_ETH_NZD","type":"uint256"},{"name":"_newEndTimestamp","type":"uint256"}],"name":"updateEthICOVariables","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistControl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_foreignToken","type":"address"},{"name":"_to","type":"address"}],"name":"rescueToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"endICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"soldTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawControl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserves","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"requestPayout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startAcceptingFundsBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ETH_CLEAR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"percentForSale","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NZD_CLEAR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenAssignmentControl","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"amount","type":"uint256"}],"name":"addPresaleAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"requestRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_whitelisted","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_new_ETH_NZD","type":"uint256"}],"name":"updateETHNZD","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethPossibleRefunds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_stateControl","type":"address"},{"name":"_whitelistControl","type":"address"},{"name":"_withdrawControl","type":"address"},{"name":"_tokenAssignmentControl","type":"address"},{"name":"_reserves","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldState","type":"uint8"},{"indexed":false,"name":"newState","type":"uint8"}],"name":"StateTransition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
6060604052600e805460ff19169055341561001957600080fd5b60405160a08062001c6b833981016040528080519190602001805191906020018051919060200180519190602001805160078054600160a060020a03808a16600160a060020a0319928316179092556008805489841690831617905560098054888416908316179055600a80549287169290911691909117905591506100ae9050600064010000000061166d61018882021704565b6000600c819055600d8190556c014adf4b7320334b9000000000808255600482905560068054600160a060020a031916600160a060020a0385811691909117808355811684526001602052604093849020839055905416917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688591905190815260200160405180910390a260065460008054600160a060020a03909216917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060405190815260200160405180910390a3505050505061023c565b600a547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79074010000000000000000000000000000000000000000900460ff1682604051808360058111156101d957fe5b60ff1681526020018260058111156101ed57fe5b60ff1681526020019250505060405180910390a1600a805482919060a060020a60ff0219167401000000000000000000000000000000000000000083600581111561023457fe5b021790555050565b611a1f806200024c6000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166304b2bf9981146102a857806305d2035b146102d757806306fdde03146102fe578063095ea7b31461038857806309f3ad26146103aa57806318160ddd146103d257806323b872dd146103e55780632ab4d0521461040d578063313ce5671461042057806332b3c3231461044957806334bb3ee11461045e57806335a063b41461047757806341f1d4dd1461048a5780634707d0001461049d5780634f248409146104c25780635ed9ebfc146104d557806366188463146104e85780636aa9c82b1461050a57806370a082311461051d57806375172a8b1461053c5780637fa8c1581461054f5780638456cb59146105625780638f97e3a01461057557806390c79af91461058b57806395d89b411461059e5780639b19251a146105b15780639cbd7da5146105d0578063a1391297146105e3578063a85adeab146105f6578063a9059cbb14610609578063b21ed44e1461062b578063c19d93fb1461063e578063c6e9ce111461062b578063c8c2ed5414610675578063cc577f3814610688578063d5cef133146106aa578063d73dd623146106bd578063dd62ed3e146106df578063e43252d714610704578063f80e77d214610723578063f8b1fb1214610739575b6000600280600a5460a060020a900460ff1660058111156101fc57fe5b1461020657600080fd5b600160a060020a03331660009081526005602052604090205460ff16151560011461023057600080fd5b600c54421061023e57600080fd5b600b5443101561024d57600080fd5b61025634610758565b915061026233836107ac565b600160a060020a03331660009081526003602052604090205461028b903463ffffffff6108bd16565b600160a060020a0333166000908152600360205260409020555050005b34156102b357600080fd5b6102bb6108d3565b604051600160a060020a03909116815260200160405180910390f35b34156102e257600080fd5b6102ea6108e2565b604051901515815260200160405180910390f35b341561030957600080fd5b6103116108eb565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561034d578082015183820152602001610335565b50505050905090810190601f16801561037a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039357600080fd5b6102ea600160a060020a0360043516602435610922565b34156103b557600080fd5b6103c0600435610758565b60405190815260200160405180910390f35b34156103dd57600080fd5b6103c061098e565b34156103f057600080fd5b6102ea600160a060020a0360043581169060243516604435610994565b341561041857600080fd5b6103c06109cf565b341561042b57600080fd5b6104336109e0565b60405160ff909116815260200160405180910390f35b341561045457600080fd5b61045c6109e5565b005b341561046957600080fd5b61045c600435602435610a2d565b341561048257600080fd5b61045c610ad1565b341561049557600080fd5b6102bb610b1b565b34156104a857600080fd5b61045c600160a060020a0360043581169060243516610b2a565b34156104cd57600080fd5b61045c610c4f565b34156104e057600080fd5b6103c0610c8f565b34156104f357600080fd5b6102ea600160a060020a0360043516602435610c95565b341561051557600080fd5b6102bb610d8f565b341561052857600080fd5b6103c0600160a060020a0360043516610d9e565b341561054757600080fd5b6102bb610dbd565b341561055a57600080fd5b61045c610dcc565b341561056d57600080fd5b61045c610e28565b341561058057600080fd5b61045c600435610e72565b341561059657600080fd5b6103c0610ee3565b34156105a957600080fd5b610311610ee9565b34156105bc57600080fd5b6102ea600160a060020a0360043516610f20565b34156105db57600080fd5b61045c610f35565b34156105ee57600080fd5b6103c0610f7f565b341561060157600080fd5b6103c0610f85565b341561061457600080fd5b6102ea600160a060020a0360043516602435610f8b565b341561063657600080fd5b6103c0610fbc565b341561064957600080fd5b610651610fc1565b6040518082600581111561066157fe5b60ff16815260200191505060405180910390f35b341561068057600080fd5b6102bb610fd1565b341561069357600080fd5b61045c600160a060020a0360043516602435610fe0565b34156106b557600080fd5b61045c61104d565b34156106c857600080fd5b6102ea600160a060020a03600435166024356110df565b34156106ea57600080fd5b6103c0600160a060020a0360043581169060243516611183565b341561070f57600080fd5b61045c600160a060020a03600435166111ae565b341561072e57600080fd5b61045c60043561122e565b341561074457600080fd5b6103c0600160a060020a0360043516611293565b6000806000610772600d54856112a590919063ffffffff16565b915061077e82426112c9565b90506107a46103e86107988482850163ffffffff6112a516565b9063ffffffff6114df16565b949350505050565b6004546000906107c2908363ffffffff6108bd16565b90506107e760646107986c014adf4b7320334b9000000000603263ffffffff6112a516565b8111156107f357600080fd5b600160a060020a03831660009081526001602052604090205461081c908363ffffffff6108bd16565b600160a060020a038085166000908152600160205260408082209390935560065490911681522054610854908363ffffffff6114f616565b60068054600160a060020a03908116600090815260016020526040908190209390935560048490559054858216929116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3505050565b6000828201838110156108cc57fe5b9392505050565b600754600160a060020a031681565b600e5460ff1681565b60408051908101604052600b81527f434c45415220546f6b656e000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600480600a5460a060020a900460ff1660058111156109b157fe5b146109bb57600080fd5b6109c6858585611508565b95945050505050565b6c014adf4b7320334b900000000081565b601281565b600280600a5460a060020a900460ff166005811115610a0057fe5b14610a0a57600080fd5b600c544211610a1857600080fd5b610a20611632565b610a2a600461166d565b50565b60075433600160a060020a03908116911614610a4857600080fd5b6000600a5460a060020a900460ff166005811115610a6257fe5b1480610a8557506001600a5460a060020a900460ff166005811115610a8357fe5b145b1515610a9057600080fd5b60008211610a9d57600080fd5b42819010610aaa57600080fd5b600c819055610ac082603263ffffffff6112a516565b600d55610acd600161166d565b5050565b60075433600160a060020a03908116911614610aec57600080fd5b600580600a5460a060020a900460ff166005811115610b0757fe5b14610b1157600080fd5b610a2a600361166d565b600854600160a060020a031681565b600a5433600160a060020a03908116911614610b4557600080fd5b600480600a5460a060020a900460ff166005811115610b6057fe5b14610b6a57600080fd5b600160a060020a03831663a9059cbb83826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610bc857600080fd5b6102c65a03f11515610bd957600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c2f57600080fd5b6102c65a03f11515610c4057600080fd5b50505060405180515050505050565b60075433600160a060020a03908116911614610c6a57600080fd5b600280600a5460a060020a900460ff166005811115610c8557fe5b14610a1857600080fd5b60045481565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610cf257600160a060020a033381166000908152600260209081526040808320938816835292905290812055610d29565b610d02818463ffffffff6114f616565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600954600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b600654600160a060020a031681565b60075433600160a060020a03908116911614610de757600080fd5b600180600a5460a060020a900460ff166005811115610e0257fe5b14610e0c57600080fd5b600c544210610e1a57600080fd5b43600b55610a2a600261166d565b60075433600160a060020a03908116911614610e4357600080fd5b600280600a5460a060020a900460ff166005811115610e5e57fe5b14610e6857600080fd5b610a2a600561166d565b60095433600160a060020a03908116911614610e8d57600080fd5b600480600a5460a060020a900460ff166005811115610ea857fe5b14610eb257600080fd5b600160a060020a03331682156108fc0283604051600060405180830381858888f193505050501515610acd57600080fd5b600b5481565b60408051908101604052600581527f434c454152000000000000000000000000000000000000000000000000000000602082015281565b60056020526000908152604090205460ff1681565b60075433600160a060020a03908116911614610f5057600080fd5b600580600a5460a060020a900460ff166005811115610f6b57fe5b14610f7557600080fd5b610a2a600261166d565b600d5481565b600c5481565b6000600480600a5460a060020a900460ff166005811115610fa857fe5b14610fb257600080fd5b6107a4848461170d565b603281565b600a5460a060020a900460ff1681565b600a54600160a060020a031681565b600a5433600160a060020a03908116911614610ffb57600080fd5b6001600a5460a060020a900460ff16600581111561101557fe5b148061103857506002600a5460a060020a900460ff16600581111561103657fe5b145b151561104357600080fd5b610acd82826107ac565b6000600380600a5460a060020a900460ff16600581111561106a57fe5b1461107457600080fd5b600160a060020a0333166000908152600360205260408120541161109757600080fd5b600160a060020a033316600081815260036020526040808220805492905590935083156108fc0290849051600060405180830381858888f193505050501515610acd57600080fd5b600160a060020a033381166000908152600260209081526040808320938616835292905290812054611117908363ffffffff6108bd16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085433600160a060020a039081169116146111c957600080fd5b600160a060020a03811660009081526005602052604090819020805460ff191660011790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5490829051600160a060020a03909116815260200160405180910390a150565b600a5433600160a060020a0390811691161461124957600080fd5b600280600a5460a060020a900460ff16600581111561126457fe5b1461126e57600080fd5b6000821161127b57600080fd5b61128c82603263ffffffff6112a516565b600d555050565b60036020526000908152604090205481565b60008282028315806112c157508284828115156112be57fe5b04145b15156108cc57fe5b60006112d3611975565b6112db6119a3565b600080600080600060a06040519081016040528060806040519081016040528061012c815260200161019081526020016101f481526020016102ee815250815260200160806040519081016040528060c8815260200161012c8152602001610190815260200161025881525081526020016080604051908101604052806096815260200160fa815260200161012c81526020016101f48152508152602001608060405190810160405280606481526020016096815260200160fa8152602001610190815250815260200160806040519081016040528060008152602001606481526020016096815260200161012c81525081525096506080604051908101604052806113ec6107e2600360186117e3565b81526020016114006107e2600460056117e3565b81526020016114136107e26005806117e3565b81526020016114276107e2600660056117e3565b90529550670de0b6b3a76400008a0494506004935060009250631dcd650085106114545760039250611478565b6305f5e10085106114685760029250611478565b63017d7840851061147857600192505b506004905060005b818110156114b05785816004811061149457fe5b60200201518910156114a8578093506114b0565b600101611480565b8684600581106114bc57fe5b602002015183600481106114cc57fe5b60200201519a9950505050505050505050565b60008082848115156114ed57fe5b04949350505050565b60008282111561150257fe5b50900390565b600080600160a060020a038416151561152057600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054611566908463ffffffff6114f616565b600160a060020a03808716600090815260016020526040808220939093559086168152205461159b908463ffffffff6108bd16565b600160a060020a0385166000908152600160205260409020556115c4818463ffffffff6114f616565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b600e805460ff191660011790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a1565b600a547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79060a060020a900460ff1682604051808360058111156116ad57fe5b60ff1681526020018260058111156116c157fe5b60ff1681526020019250505060405180910390a1600a805482919074ff0000000000000000000000000000000000000000191660a060020a83600581111561170557fe5b021790555050565b6000600160a060020a038316151561172457600080fd5b600160a060020a03331660009081526001602052604090205461174d908363ffffffff6114f616565b600160a060020a033381166000908152600160205260408082209390935590851681522054611782908363ffffffff6108bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000806117ee6119ca565b63ffffffff6301e1338061ffff6107b119890116021692909201916118146107b2611904565b6118218761ffff16611904565b601f835203620151800292909201916118398661191f565b1561184a57601d6020820152611852565b601c60208201525b601f60408201819052601e606083018190526080830182905260a0830181905260c0830182905260e0830182905261010083018190526101208301829052610140830152610160820152600191505b8460ff168261ffff1610156118e7578061ffff600019840116600c81106118c457fe5b602002015160ff16620151800262ffffff168301925081806001019250506118a1565b50506000199190910160ff16620151800262ffffff160192915050565b60001901600061019082046064830460048404030192915050565b6000600461ffff83160661ffff161561193a57506000610db8565b606461ffff83160661ffff161561195357506001610db8565b61019061ffff83160661ffff161561196d57506000610db8565b506001919050565b6102806040519081016040526005815b61198d6119a3565b8152602001906001900390816119855790505090565b60806040519081016040526004815b60008152602001906001900390816119b25790505090565b610180604051908101604052600c815b6000815260001990910190602001816119da57905050905600a165627a7a72305820843e51ff42d875b7a418603310fefd64d3ae268e1bbff7ccea3e52579e58d130002900000000000000000000000009848f88307e6e2adf95ebeced073d63802ece69000000000000000000000000be0ace1e742a5cc246d719bf20be908b2ed905e80000000000000000000000008b5ab35b50deb29d84dff4053bb013d1fa82fcfb00000000000000000000000071ab6571680f7745008b3adfb4081f7e20429e1600000000000000000000000002c4e5d881e22c094731ad3073ee8afe5dfb4163
Deployed Bytecode
0x6060604052600436106101df5763ffffffff60e060020a60003504166304b2bf9981146102a857806305d2035b146102d757806306fdde03146102fe578063095ea7b31461038857806309f3ad26146103aa57806318160ddd146103d257806323b872dd146103e55780632ab4d0521461040d578063313ce5671461042057806332b3c3231461044957806334bb3ee11461045e57806335a063b41461047757806341f1d4dd1461048a5780634707d0001461049d5780634f248409146104c25780635ed9ebfc146104d557806366188463146104e85780636aa9c82b1461050a57806370a082311461051d57806375172a8b1461053c5780637fa8c1581461054f5780638456cb59146105625780638f97e3a01461057557806390c79af91461058b57806395d89b411461059e5780639b19251a146105b15780639cbd7da5146105d0578063a1391297146105e3578063a85adeab146105f6578063a9059cbb14610609578063b21ed44e1461062b578063c19d93fb1461063e578063c6e9ce111461062b578063c8c2ed5414610675578063cc577f3814610688578063d5cef133146106aa578063d73dd623146106bd578063dd62ed3e146106df578063e43252d714610704578063f80e77d214610723578063f8b1fb1214610739575b6000600280600a5460a060020a900460ff1660058111156101fc57fe5b1461020657600080fd5b600160a060020a03331660009081526005602052604090205460ff16151560011461023057600080fd5b600c54421061023e57600080fd5b600b5443101561024d57600080fd5b61025634610758565b915061026233836107ac565b600160a060020a03331660009081526003602052604090205461028b903463ffffffff6108bd16565b600160a060020a0333166000908152600360205260409020555050005b34156102b357600080fd5b6102bb6108d3565b604051600160a060020a03909116815260200160405180910390f35b34156102e257600080fd5b6102ea6108e2565b604051901515815260200160405180910390f35b341561030957600080fd5b6103116108eb565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561034d578082015183820152602001610335565b50505050905090810190601f16801561037a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039357600080fd5b6102ea600160a060020a0360043516602435610922565b34156103b557600080fd5b6103c0600435610758565b60405190815260200160405180910390f35b34156103dd57600080fd5b6103c061098e565b34156103f057600080fd5b6102ea600160a060020a0360043581169060243516604435610994565b341561041857600080fd5b6103c06109cf565b341561042b57600080fd5b6104336109e0565b60405160ff909116815260200160405180910390f35b341561045457600080fd5b61045c6109e5565b005b341561046957600080fd5b61045c600435602435610a2d565b341561048257600080fd5b61045c610ad1565b341561049557600080fd5b6102bb610b1b565b34156104a857600080fd5b61045c600160a060020a0360043581169060243516610b2a565b34156104cd57600080fd5b61045c610c4f565b34156104e057600080fd5b6103c0610c8f565b34156104f357600080fd5b6102ea600160a060020a0360043516602435610c95565b341561051557600080fd5b6102bb610d8f565b341561052857600080fd5b6103c0600160a060020a0360043516610d9e565b341561054757600080fd5b6102bb610dbd565b341561055a57600080fd5b61045c610dcc565b341561056d57600080fd5b61045c610e28565b341561058057600080fd5b61045c600435610e72565b341561059657600080fd5b6103c0610ee3565b34156105a957600080fd5b610311610ee9565b34156105bc57600080fd5b6102ea600160a060020a0360043516610f20565b34156105db57600080fd5b61045c610f35565b34156105ee57600080fd5b6103c0610f7f565b341561060157600080fd5b6103c0610f85565b341561061457600080fd5b6102ea600160a060020a0360043516602435610f8b565b341561063657600080fd5b6103c0610fbc565b341561064957600080fd5b610651610fc1565b6040518082600581111561066157fe5b60ff16815260200191505060405180910390f35b341561068057600080fd5b6102bb610fd1565b341561069357600080fd5b61045c600160a060020a0360043516602435610fe0565b34156106b557600080fd5b61045c61104d565b34156106c857600080fd5b6102ea600160a060020a03600435166024356110df565b34156106ea57600080fd5b6103c0600160a060020a0360043581169060243516611183565b341561070f57600080fd5b61045c600160a060020a03600435166111ae565b341561072e57600080fd5b61045c60043561122e565b341561074457600080fd5b6103c0600160a060020a0360043516611293565b6000806000610772600d54856112a590919063ffffffff16565b915061077e82426112c9565b90506107a46103e86107988482850163ffffffff6112a516565b9063ffffffff6114df16565b949350505050565b6004546000906107c2908363ffffffff6108bd16565b90506107e760646107986c014adf4b7320334b9000000000603263ffffffff6112a516565b8111156107f357600080fd5b600160a060020a03831660009081526001602052604090205461081c908363ffffffff6108bd16565b600160a060020a038085166000908152600160205260408082209390935560065490911681522054610854908363ffffffff6114f616565b60068054600160a060020a03908116600090815260016020526040908190209390935560048490559054858216929116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3505050565b6000828201838110156108cc57fe5b9392505050565b600754600160a060020a031681565b600e5460ff1681565b60408051908101604052600b81527f434c45415220546f6b656e000000000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b6000600480600a5460a060020a900460ff1660058111156109b157fe5b146109bb57600080fd5b6109c6858585611508565b95945050505050565b6c014adf4b7320334b900000000081565b601281565b600280600a5460a060020a900460ff166005811115610a0057fe5b14610a0a57600080fd5b600c544211610a1857600080fd5b610a20611632565b610a2a600461166d565b50565b60075433600160a060020a03908116911614610a4857600080fd5b6000600a5460a060020a900460ff166005811115610a6257fe5b1480610a8557506001600a5460a060020a900460ff166005811115610a8357fe5b145b1515610a9057600080fd5b60008211610a9d57600080fd5b42819010610aaa57600080fd5b600c819055610ac082603263ffffffff6112a516565b600d55610acd600161166d565b5050565b60075433600160a060020a03908116911614610aec57600080fd5b600580600a5460a060020a900460ff166005811115610b0757fe5b14610b1157600080fd5b610a2a600361166d565b600854600160a060020a031681565b600a5433600160a060020a03908116911614610b4557600080fd5b600480600a5460a060020a900460ff166005811115610b6057fe5b14610b6a57600080fd5b600160a060020a03831663a9059cbb83826370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610bc857600080fd5b6102c65a03f11515610bd957600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c2f57600080fd5b6102c65a03f11515610c4057600080fd5b50505060405180515050505050565b60075433600160a060020a03908116911614610c6a57600080fd5b600280600a5460a060020a900460ff166005811115610c8557fe5b14610a1857600080fd5b60045481565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205480831115610cf257600160a060020a033381166000908152600260209081526040808320938816835292905290812055610d29565b610d02818463ffffffff6114f616565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600954600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b600654600160a060020a031681565b60075433600160a060020a03908116911614610de757600080fd5b600180600a5460a060020a900460ff166005811115610e0257fe5b14610e0c57600080fd5b600c544210610e1a57600080fd5b43600b55610a2a600261166d565b60075433600160a060020a03908116911614610e4357600080fd5b600280600a5460a060020a900460ff166005811115610e5e57fe5b14610e6857600080fd5b610a2a600561166d565b60095433600160a060020a03908116911614610e8d57600080fd5b600480600a5460a060020a900460ff166005811115610ea857fe5b14610eb257600080fd5b600160a060020a03331682156108fc0283604051600060405180830381858888f193505050501515610acd57600080fd5b600b5481565b60408051908101604052600581527f434c454152000000000000000000000000000000000000000000000000000000602082015281565b60056020526000908152604090205460ff1681565b60075433600160a060020a03908116911614610f5057600080fd5b600580600a5460a060020a900460ff166005811115610f6b57fe5b14610f7557600080fd5b610a2a600261166d565b600d5481565b600c5481565b6000600480600a5460a060020a900460ff166005811115610fa857fe5b14610fb257600080fd5b6107a4848461170d565b603281565b600a5460a060020a900460ff1681565b600a54600160a060020a031681565b600a5433600160a060020a03908116911614610ffb57600080fd5b6001600a5460a060020a900460ff16600581111561101557fe5b148061103857506002600a5460a060020a900460ff16600581111561103657fe5b145b151561104357600080fd5b610acd82826107ac565b6000600380600a5460a060020a900460ff16600581111561106a57fe5b1461107457600080fd5b600160a060020a0333166000908152600360205260408120541161109757600080fd5b600160a060020a033316600081815260036020526040808220805492905590935083156108fc0290849051600060405180830381858888f193505050501515610acd57600080fd5b600160a060020a033381166000908152600260209081526040808320938616835292905290812054611117908363ffffffff6108bd16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085433600160a060020a039081169116146111c957600080fd5b600160a060020a03811660009081526005602052604090819020805460ff191660011790557faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5490829051600160a060020a03909116815260200160405180910390a150565b600a5433600160a060020a0390811691161461124957600080fd5b600280600a5460a060020a900460ff16600581111561126457fe5b1461126e57600080fd5b6000821161127b57600080fd5b61128c82603263ffffffff6112a516565b600d555050565b60036020526000908152604090205481565b60008282028315806112c157508284828115156112be57fe5b04145b15156108cc57fe5b60006112d3611975565b6112db6119a3565b600080600080600060a06040519081016040528060806040519081016040528061012c815260200161019081526020016101f481526020016102ee815250815260200160806040519081016040528060c8815260200161012c8152602001610190815260200161025881525081526020016080604051908101604052806096815260200160fa815260200161012c81526020016101f48152508152602001608060405190810160405280606481526020016096815260200160fa8152602001610190815250815260200160806040519081016040528060008152602001606481526020016096815260200161012c81525081525096506080604051908101604052806113ec6107e2600360186117e3565b81526020016114006107e2600460056117e3565b81526020016114136107e26005806117e3565b81526020016114276107e2600660056117e3565b90529550670de0b6b3a76400008a0494506004935060009250631dcd650085106114545760039250611478565b6305f5e10085106114685760029250611478565b63017d7840851061147857600192505b506004905060005b818110156114b05785816004811061149457fe5b60200201518910156114a8578093506114b0565b600101611480565b8684600581106114bc57fe5b602002015183600481106114cc57fe5b60200201519a9950505050505050505050565b60008082848115156114ed57fe5b04949350505050565b60008282111561150257fe5b50900390565b600080600160a060020a038416151561152057600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054611566908463ffffffff6114f616565b600160a060020a03808716600090815260016020526040808220939093559086168152205461159b908463ffffffff6108bd16565b600160a060020a0385166000908152600160205260409020556115c4818463ffffffff6114f616565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b600e805460ff191660011790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a1565b600a547f3a779de46631dd65116ae538600f1bc3c338200c6aef638429b5de43301c28f79060a060020a900460ff1682604051808360058111156116ad57fe5b60ff1681526020018260058111156116c157fe5b60ff1681526020019250505060405180910390a1600a805482919074ff0000000000000000000000000000000000000000191660a060020a83600581111561170557fe5b021790555050565b6000600160a060020a038316151561172457600080fd5b600160a060020a03331660009081526001602052604090205461174d908363ffffffff6114f616565b600160a060020a033381166000908152600160205260408082209390935590851681522054611782908363ffffffff6108bd16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000806117ee6119ca565b63ffffffff6301e1338061ffff6107b119890116021692909201916118146107b2611904565b6118218761ffff16611904565b601f835203620151800292909201916118398661191f565b1561184a57601d6020820152611852565b601c60208201525b601f60408201819052601e606083018190526080830182905260a0830181905260c0830182905260e0830182905261010083018190526101208301829052610140830152610160820152600191505b8460ff168261ffff1610156118e7578061ffff600019840116600c81106118c457fe5b602002015160ff16620151800262ffffff168301925081806001019250506118a1565b50506000199190910160ff16620151800262ffffff160192915050565b60001901600061019082046064830460048404030192915050565b6000600461ffff83160661ffff161561193a57506000610db8565b606461ffff83160661ffff161561195357506001610db8565b61019061ffff83160661ffff161561196d57506000610db8565b506001919050565b6102806040519081016040526005815b61198d6119a3565b8152602001906001900390816119855790505090565b60806040519081016040526004815b60008152602001906001900390816119b25790505090565b610180604051908101604052600c815b6000815260001990910190602001816119da57905050905600a165627a7a72305820843e51ff42d875b7a418603310fefd64d3ae268e1bbff7ccea3e52579e58d1300029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000009848f88307e6e2adf95ebeced073d63802ece69000000000000000000000000be0ace1e742a5cc246d719bf20be908b2ed905e80000000000000000000000008b5ab35b50deb29d84dff4053bb013d1fa82fcfb00000000000000000000000071ab6571680f7745008b3adfb4081f7e20429e1600000000000000000000000002c4e5d881e22c094731ad3073ee8afe5dfb4163
-----Decoded View---------------
Arg [0] : _stateControl (address): 0x09848f88307e6e2ADf95eBecEd073D63802ece69
Arg [1] : _whitelistControl (address): 0xBe0AcE1E742A5CC246D719bF20Be908b2Ed905e8
Arg [2] : _withdrawControl (address): 0x8B5ab35b50dEb29d84DFF4053BB013d1fa82FcfB
Arg [3] : _tokenAssignmentControl (address): 0x71AB6571680F7745008B3Adfb4081f7e20429E16
Arg [4] : _reserves (address): 0x02C4E5d881e22C094731aD3073eE8AFe5DFB4163
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000009848f88307e6e2adf95ebeced073d63802ece69
Arg [1] : 000000000000000000000000be0ace1e742a5cc246d719bf20be908b2ed905e8
Arg [2] : 0000000000000000000000008b5ab35b50deb29d84dff4053bb013d1fa82fcfb
Arg [3] : 00000000000000000000000071ab6571680f7745008b3adfb4081f7e20429e16
Arg [4] : 00000000000000000000000002c4e5d881e22c094731ad3073ee8afe5dfb4163
Swarm Source
bzzr://843e51ff42d875b7a418603310fefd64d3ae268e1bbff7ccea3e52579e58d130
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.