More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 2,759 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 10018364 | 1681 days ago | IN | 0 ETH | 0.0003276 | ||||
Transfer Ownersh... | 7401650 | 2096 days ago | IN | 0 ETH | 0.0000481 | ||||
Transfer Ownersh... | 7401633 | 2096 days ago | IN | 0 ETH | 0.0000962 | ||||
Set RLC Per ETH | 7401497 | 2096 days ago | IN | 0 ETH | 0.000075 | ||||
Withdraw Payment... | 7401359 | 2096 days ago | IN | 0 ETH | 0.00005 | ||||
Transfer Ownersh... | 7358511 | 2102 days ago | IN | 0 ETH | 0.0000481 | ||||
Transfer Ownersh... | 7175867 | 2138 days ago | IN | 0 ETH | 0.0000962 | ||||
Receive BTC | 6827691 | 2200 days ago | IN | 0 ETH | 0.00598882 | ||||
Withdraw Payment... | 5864696 | 2361 days ago | IN | 0 ETH | 0.00002302 | ||||
Burn | 3823256 | 2748 days ago | IN | 0 ETH | 0.01008997 | ||||
Transfer | 3758750 | 2760 days ago | IN | 1.5 ETH | 0.00005818 | ||||
Transfer | 3758709 | 2760 days ago | IN | 1.5 ETH | 0.00005818 | ||||
Transfer | 3622003 | 2785 days ago | IN | 1 ETH | 0.0018 | ||||
Transfer | 3603828 | 2788 days ago | IN | 1.104 ETH | 0.004 | ||||
Transfer | 3592888 | 2790 days ago | IN | 0.104 ETH | 0.004 | ||||
Transfer | 3574056 | 2793 days ago | IN | 14 ETH | 0.00058462 | ||||
Transfer | 3573975 | 2793 days ago | IN | 14.88187638 ETH | 0.00058462 | ||||
Receive BTC | 3566253 | 2794 days ago | IN | 0 ETH | 0.00074288 | ||||
0xd4f8dd50 | 3566126 | 2794 days ago | IN | 0.01 ETH | 0.0018 | ||||
Receive BTC | 3565425 | 2795 days ago | IN | 0 ETH | 0.00074288 | ||||
Receive BTC | 3565425 | 2795 days ago | IN | 0 ETH | 0.0007416 | ||||
Receive BTC | 3565425 | 2795 days ago | IN | 0 ETH | 0.00074416 | ||||
Transfer | 3564928 | 2795 days ago | IN | 1.43134228 ETH | 0.00058462 | ||||
Transfer | 3564886 | 2795 days ago | IN | 1.4319269 ETH | 0.00058462 | ||||
Receive BTC | 3564716 | 2795 days ago | IN | 0 ETH | 0.00074288 |
Latest 8 internal transactions
Advanced mode:
Loading...
Loading
Contract Name:
Crowdsale
Compiler Version
v0.4.8+commit.60cc1668
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-04-18 */ pragma solidity ^0.4.8; contract ERC20 { uint public totalSupply; function balanceOf(address who) constant returns (uint); function allowance(address owner, address spender) constant returns (uint); function transfer(address to, uint value) returns (bool ok); function transferFrom(address from, address to, uint value) returns (bool ok); function approve(address spender, uint value) returns (bool ok); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } contract Ownable { address public owner; function Ownable() { owner = msg.sender; } modifier onlyOwner() { if (msg.sender == owner) _; } function transferOwnership(address newOwner) onlyOwner { if (newOwner != address(0)) owner = newOwner; } } contract TokenSpender { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); } contract SafeMath { function safeMul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function safeDiv(uint a, uint b) internal returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * c + a % b); return c; } function safeSub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function safeAdd(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c>=a && c>=b); return c; } function max64(uint64 a, uint64 b) internal constant returns (uint64) { return a >= b ? a : b; } function min64(uint64 a, uint64 b) internal constant returns (uint64) { return a < b ? a : b; } function max256(uint256 a, uint256 b) internal constant returns (uint256) { return a >= b ? a : b; } function min256(uint256 a, uint256 b) internal constant returns (uint256) { return a < b ? a : b; } function assert(bool assertion) internal { if (!assertion) { throw; } } } contract PullPayment { mapping(address => uint) public payments; event RefundETH(address to, uint value); // store sent amount as credit to be pulled, called by payer function asyncSend(address dest, uint amount) internal { payments[dest] += amount; } // withdraw accumulated balance, called by payee function withdrawPayments() { address payee = msg.sender; uint payment = payments[payee]; if (payment == 0) { throw; } if (this.balance < payment) { throw; } payments[payee] = 0; if (!payee.send(payment)) { throw; } RefundETH(payee,payment); } } contract Pausable is Ownable { bool public stopped; modifier stopInEmergency { if (stopped) { throw; } _; } modifier onlyInEmergency { if (!stopped) { throw; } _; } // called by the owner on emergency, triggers stopped state function emergencyStop() external onlyOwner { stopped = true; } // called by the owner on end of emergency, returns to normal state function release() external onlyOwner onlyInEmergency { stopped = false; } } contract RLC is ERC20, SafeMath, Ownable { /* Public variables of the token */ string public name; //fancy name string public symbol; uint8 public decimals; //How many decimals to show. string public version = 'v0.1'; uint public initialSupply; uint public totalSupply; bool public locked; //uint public unlockBlock; mapping(address => uint) balances; mapping (address => mapping (address => uint)) allowed; // lock transfer during the ICO modifier onlyUnlocked() { if (msg.sender != owner && locked) throw; _; } /* * The RLC Token created with the time at which the crowdsale end */ function RLC() { // lock the transfer function during the crowdsale locked = true; //unlockBlock= now + 45 days; // (testnet) - for mainnet put the block number initialSupply = 87000000000000000; totalSupply = initialSupply; balances[msg.sender] = initialSupply;// Give the creator all initial tokens name = 'iEx.ec Network Token'; // Set the name for display purposes symbol = 'RLC'; // Set the symbol for display purposes decimals = 9; // Amount of decimals for display purposes } function unlock() onlyOwner { locked = false; } function burn(uint256 _value) returns (bool){ balances[msg.sender] = safeSub(balances[msg.sender], _value) ; totalSupply = safeSub(totalSupply, _value); Transfer(msg.sender, 0x0, _value); return true; } function transfer(address _to, uint _value) onlyUnlocked returns (bool) { balances[msg.sender] = safeSub(balances[msg.sender], _value); balances[_to] = safeAdd(balances[_to], _value); Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint _value) onlyUnlocked returns (bool) { var _allowance = allowed[_from][msg.sender]; balances[_to] = safeAdd(balances[_to], _value); balances[_from] = safeSub(balances[_from], _value); allowed[_from][msg.sender] = safeSub(_allowance, _value); Transfer(_from, _to, _value); return true; } function balanceOf(address _owner) constant returns (uint balance) { return balances[_owner]; } function approve(address _spender, uint _value) returns (bool) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } /* Approve and then comunicate the approved contract in a single tx */ function approveAndCall(address _spender, uint256 _value, bytes _extraData){ TokenSpender spender = TokenSpender(_spender); if (approve(_spender, _value)) { spender.receiveApproval(msg.sender, _value, this, _extraData); } } function allowance(address _owner, address _spender) constant returns (uint remaining) { return allowed[_owner][_spender]; } } contract Crowdsale is SafeMath, PullPayment, Pausable { struct Backer { uint weiReceived; // Amount of ETH given string btc_address; //store the btc address for full traceability uint satoshiReceived; // Amount of BTC given uint rlcSent; } RLC public rlc; // RLC contract reference address public owner; // Contract owner (iEx.ec team) address public multisigETH; // Multisig contract that will receive the ETH address public BTCproxy; // address of the BTC Proxy uint public RLCPerETH; // Number of RLC per ETH uint public RLCPerSATOSHI; // Number of RLC per SATOSHI uint public ETHReceived; // Number of ETH received uint public BTCReceived; // Number of BTC received uint public RLCSentToETH; // Number of RLC sent to ETH contributors uint public RLCSentToBTC; // Number of RLC sent to BTC contributors uint public startBlock; // Crowdsale start block uint public endBlock; // Crowdsale end block uint public minCap; // Minimum number of RLC to sell uint public maxCap; // Maximum number of RLC to sell bool public maxCapReached; // Max cap has been reached uint public minInvestETH; // Minimum amount to invest uint public minInvestBTC; // Minimum amount to invest bool public crowdsaleClosed;// Is crowdsale still on going address public bounty; // address at which the bounty RLC will be sent address public reserve; // address at which the contingency reserve will be sent address public team; // address at which the team RLC will be sent uint public rlc_bounty; // amount of bounties RLC uint public rlc_reserve; // amount of the contingency reserve uint public rlc_team; // amount of the team RLC mapping(address => Backer) public backers; //backersETH indexed by their ETH address modifier onlyBy(address a){ if (msg.sender != a) throw; _; } modifier minCapNotReached() { if ((now<endBlock) || RLCSentToETH + RLCSentToBTC >= minCap ) throw; _; } modifier respectTimeFrame() { if ((now < startBlock) || (now > endBlock )) throw; _; } /* * Event */ event ReceivedETH(address addr, uint value); event ReceivedBTC(address addr, string from, uint value, string txid); event RefundBTC(string to, uint value); event Logs(address indexed from, uint amount, string value); /* * Constructor */ //function Crowdsale() { function Crowdsale() { owner = msg.sender; BTCproxy = 0x75c6cceb1a33f177369053f8a0e840de96b4ed0e; rlc = RLC(0x607F4C5BB672230e8672085532f7e901544a7375); multisigETH = 0xAe307e3871E5A321c0559FBf0233A38c937B826A; team = 0xd65380D773208a6Aa49472Bf55186b855B393298; reserve = 0x24F6b37770C6067D05ACc2aD2C42d1Bafde95d48; bounty = 0x8226a24dA0870Fb8A128E4Fc15228a9c4a5baC29; RLCSentToETH = 0; RLCSentToBTC = 0; minInvestETH = 1 ether; minInvestBTC = 5000000; // approx 50 USD or 0.05000000 BTC startBlock = 0 ; // should wait for the call of the function start endBlock = 0; // should wait for the call of the function start RLCPerETH = 200000000000; // will be update every 10min based on the kraken ETHBTC RLCPerSATOSHI = 50000; // 5000 RLC par BTC == 50,000 RLC per satoshi minCap=12000000000000000; maxCap=60000000000000000; rlc_bounty=1700000000000000; // max 6000000 RLC rlc_reserve=1700000000000000; // max 6000000 RLC rlc_team=12000000000000000; } /* * The fallback function corresponds to a donation in ETH */ function() payable { if (now > endBlock) throw; receiveETH(msg.sender); } /* * To call to start the crowdsale */ function start() onlyBy(owner) { startBlock = now ; endBlock = now + 30 days; } /* * Receives a donation in ETH */ function receiveETH(address beneficiary) internal stopInEmergency respectTimeFrame { if (msg.value < minInvestETH) throw; //don't accept funding under a predefined threshold uint rlcToSend = bonus(safeMul(msg.value,RLCPerETH)/(1 ether)); //compute the number of RLC to send if (safeAdd(rlcToSend, safeAdd(RLCSentToETH, RLCSentToBTC)) > maxCap) throw; Backer backer = backers[beneficiary]; if (!rlc.transfer(beneficiary, rlcToSend)) throw; // Do the RLC transfer right now backer.rlcSent = safeAdd(backer.rlcSent, rlcToSend); backer.weiReceived = safeAdd(backer.weiReceived, msg.value); // Update the total wei collected during the crowdfunding for this backer ETHReceived = safeAdd(ETHReceived, msg.value); // Update the total wei collected during the crowdfunding RLCSentToETH = safeAdd(RLCSentToETH, rlcToSend); emitRLC(rlcToSend); // compute the variable part ReceivedETH(beneficiary,ETHReceived); // send the corresponding contribution event } /* * receives a donation in BTC */ function receiveBTC(address beneficiary, string btc_address, uint value, string txid) stopInEmergency respectTimeFrame onlyBy(BTCproxy) returns (bool res){ if (value < minInvestBTC) throw; // this verif is also made on the btcproxy uint rlcToSend = bonus(safeMul(value,RLCPerSATOSHI)); //compute the number of RLC to send if (safeAdd(rlcToSend, safeAdd(RLCSentToETH, RLCSentToBTC)) > maxCap) { // check if we are not reaching the maxCap by accepting this donation RefundBTC(btc_address , value); return false; } Backer backer = backers[beneficiary]; if (!rlc.transfer(beneficiary, rlcToSend)) throw; // Do the transfer right now backer.rlcSent = safeAdd(backer.rlcSent , rlcToSend); backer.btc_address = btc_address; backer.satoshiReceived = safeAdd(backer.satoshiReceived, value); BTCReceived = safeAdd(BTCReceived, value); // Update the total satoshi collected during the crowdfunding for this backer RLCSentToBTC = safeAdd(RLCSentToBTC, rlcToSend); // Update the total satoshi collected during the crowdfunding emitRLC(rlcToSend); ReceivedBTC(beneficiary, btc_address, BTCReceived, txid); return true; } /* *Compute the variable part */ function emitRLC(uint amount) internal { rlc_bounty = safeAdd(rlc_bounty, amount/10); rlc_team = safeAdd(rlc_team, amount/20); rlc_reserve = safeAdd(rlc_reserve, amount/10); Logs(msg.sender ,amount, "emitRLC"); } /* *Compute the RLC bonus according to the investment period */ function bonus(uint amount) internal constant returns (uint) { if (now < safeAdd(startBlock, 10 days)) return (safeAdd(amount, amount/5)); // bonus 20% if (now < safeAdd(startBlock, 20 days)) return (safeAdd(amount, amount/10)); // bonus 10% return amount; } /* * When mincap is not reach backer can call the approveAndCall function of the RLC token contract * with this crowdsale contract on parameter with all the RLC they get in order to be refund */ function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) minCapNotReached public { if (msg.sender != address(rlc)) throw; if (_extraData.length != 0) throw; // no extradata needed if (_value != backers[_from].rlcSent) throw; // compare value from backer balance if (!rlc.transferFrom(_from, address(this), _value)) throw ; // get the token back to the crowdsale contract if (!rlc.burn(_value)) throw ; // token sent for refund are burnt uint ETHToSend = backers[_from].weiReceived; backers[_from].weiReceived=0; uint BTCToSend = backers[_from].satoshiReceived; backers[_from].satoshiReceived = 0; if (ETHToSend > 0) { asyncSend(_from,ETHToSend); // pull payment to get refund in ETH } if (BTCToSend > 0) RefundBTC(backers[_from].btc_address ,BTCToSend); // event message to manually refund BTC } /* * Update the rate RLC per ETH, computed externally by using the ETHBTC index on kraken every 10min */ function setRLCPerETH(uint rate) onlyBy(BTCproxy) { RLCPerETH=rate; } /* * Finalize the crowdsale, should be called after the refund period */ function finalize() onlyBy(owner) { // check if (RLCSentToETH + RLCSentToBTC < maxCap - 5000000000000 && now < endBlock) throw; // cannot finalise before 30 day until maxcap is reached minus 1BTC if (RLCSentToETH + RLCSentToBTC < minCap && now < endBlock + 15 days) throw ; // if mincap is not reached donors have 15days to get refund before we can finalise if (!multisigETH.send(this.balance)) throw; // moves the remaining ETH to the multisig address if (rlc_reserve > 6000000000000000){ // moves RLC to the team, reserve and bounty address if(!rlc.transfer(reserve,6000000000000000)) throw; // max cap 6000000RLC rlc_reserve = 6000000000000000; } else { if(!rlc.transfer(reserve,rlc_reserve)) throw; } if (rlc_bounty > 6000000000000000){ if(!rlc.transfer(bounty,6000000000000000)) throw; // max cap 6000000RLC rlc_bounty = 6000000000000000; } else { if(!rlc.transfer(bounty,rlc_bounty)) throw; } if (!rlc.transfer(team,rlc_team)) throw; uint RLCEmitted = rlc_reserve + rlc_bounty + rlc_team + RLCSentToBTC + RLCSentToETH; if (RLCEmitted < rlc.totalSupply()) // burn the rest of RLC rlc.burn(rlc.totalSupply() - RLCEmitted); rlc.unlock(); crowdsaleClosed = true; } /* * Failsafe drain */ function drain() onlyBy(owner) { if (!owner.send(this.balance)) throw; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"RLCPerSATOSHI","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rlc_reserve","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"RLCSentToBTC","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"btc_address","type":"string"},{"name":"value","type":"uint256"},{"name":"txid","type":"string"}],"name":"receiveBTC","outputs":[{"name":"res","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"RLCSentToETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"BTCproxy","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minInvestETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rlc_team","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ETHReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdrawPayments","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"rate","type":"uint256"}],"name":"setRLCPerETH","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"emergencyStop","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"multisigETH","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"team","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_token","type":"address"},{"name":"_extraData","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"bounty","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rlc_bounty","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"drain","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"BTCReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minInvestBTC","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rlc","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"backers","outputs":[{"name":"weiReceived","type":"uint256"},{"name":"btc_address","type":"string"},{"name":"satoshiReceived","type":"uint256"},{"name":"rlcSent","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"RLCPerETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"reserve","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payments","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"ReceivedETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"from","type":"string"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"txid","type":"string"}],"name":"ReceivedBTC","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"string"},{"indexed":false,"name":"value","type":"uint256"}],"name":"RefundBTC","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"value","type":"string"}],"name":"Logs","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"RefundETH","type":"event"}]
Contract Creation Code
606060405234610000575b5b60018054600160a060020a03191633600160a060020a03161790555b60038054600160a060020a033316600160a060020a0319918216179091556005805482167375c6cceb1a33f177369053f8a0e840de96b4ed0e17905560028054821673607f4c5bb672230e8672085532f7e901544a737517905560048054821673ae307e3871e5a321c0559fbf0233a38c937b826a17905560158054821673d65380d773208a6aa49472bf55186b855b393298179055601480549091167324f6b37770c6067d05acc2ad2c42d1bafde95d4817905560138054748226a24da0870fb8a128e4fc15228a9c4a5bac290061010060a860020a03199091161790556000600a819055600b819055670de0b6b3a7640000601155624c4b40601255600c819055600d55642e90edd00060065561c350600755662aa1efb94e0000600e81905566d529ae9e860000600f5566060a24181e400060168190556017556018555b5b611ab9806101786000396000f300606060405236156101b15763ffffffff60e060020a600035041663083c632381146101d257806309ce4a91146101f15780631712649b1461021057806323548b8b1461022f57806328198eab1461024e5780632e18270f1461026d5780632f3f234a14610320578063316661441461033f57806335c2d49d146103685780633fa615b01461038757806348cd4cb1146103a65780634bb278f3146103c55780635353e168146103d457806358275869146103f35780636103d70b1461041257806361046d8b1461042157806363a599a41461043357806375f12b2114610442578063823914d91461046357806385f2aef21461048c57806386d1a69f146104b55780638da5cb5b146104c45780638f4ffcb1146104ed578063943dfef11461055857806397eb147d146105815780639890220b146105a057806399ceb6e6146105af578063abc2a40a146105ce578063b017c036146105ed578063b85dfb8014610616578063be9a6555146106ce578063c33a5bb6146106dd578063c7ff1b60146106fc578063ccb07cef1461071d578063cd3293de1461073e578063e2982c2114610767578063f2fde38b14610792575b6101d05b600d544211156101c457610000565b6101cd336107ad565b5b565b005b34610000576101df61095f565b60408051918252519081900360200190f35b34610000576101df610965565b60408051918252519081900360200190f35b34610000576101df61096b565b60408051918252519081900360200190f35b34610000576101df610971565b60408051918252519081900360200190f35b34610000576101df610977565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f810185900485028601850190965285855261030c958335600160a060020a0316959394604494939290920191819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989a8a359a90999401975091955091820193509150819084018382808284375094965061097d95505050505050565b604080519115158252519081900360200190f35b34610000576101df610d94565b60408051918252519081900360200190f35b346100005761034c610d9a565b60408051600160a060020a039092168252519081900360200190f35b34610000576101df610da9565b60408051918252519081900360200190f35b34610000576101df610daf565b60408051918252519081900360200190f35b34610000576101df610db5565b60408051918252519081900360200190f35b34610000576101d0610dbb565b005b34610000576101df6112fd565b60408051918252519081900360200190f35b34610000576101df611303565b60408051918252519081900360200190f35b34610000576101d0611309565b005b34610000576101d06004356113cd565b005b34610000576101d06113f4565b005b346100005761030c611434565b604080519115158252519081900360200190f35b346100005761034c611444565b60408051600160a060020a039092168252519081900360200190f35b346100005761034c611453565b60408051600160a060020a039092168252519081900360200190f35b34610000576101d0611462565b005b346100005761034c6114b5565b60408051600160a060020a039092168252519081900360200190f35b3461000057604080516020600460643581810135601f81018490048402850184019095528484526101d0948235600160a060020a03908116956024803596604435909316959460849492939101919081908401838280828437509496506114c495505050505050565b005b346100005761034c61178e565b60408051600160a060020a039092168252519081900360200190f35b34610000576101df6117a2565b60408051918252519081900360200190f35b34610000576101d06117a8565b005b34610000576101df6117fe565b60408051918252519081900360200190f35b34610000576101df611804565b60408051918252519081900360200190f35b346100005761034c61180a565b60408051600160a060020a039092168252519081900360200190f35b346100005761062f600160a060020a0360043516611819565b60408051858152908101839052606081018290526080602082018181528554600260001961010060018416150201909116049183018290529060a0830190869080156106bc5780601f10610691576101008083540402835291602001916106bc565b820191906000526020600020905b81548152906001019060200180831161069f57829003601f168201915b50509550505050505060405180910390f35b34610000576101d061183c565b005b34610000576101df61186b565b60408051918252519081900360200190f35b346100005761030c611871565b604080519115158252519081900360200190f35b346100005761030c61187a565b604080519115158252519081900360200190f35b346100005761034c611883565b60408051600160a060020a039092168252519081900360200190f35b34610000576101df600160a060020a0360043516611892565b60408051918252519081900360200190f35b34610000576101d0600160a060020a03600435166118a4565b005b600154600090819060a060020a900460ff16156107c957610000565b600c544210806107da5750600d5442115b156107e457610000565b6011543410156107f357610000565b610817670de0b6b3a764000061080b346006546118f9565b81156100005704611925565b9150600f546108338361082e600a54600b54611983565b611983565b111561083e57610000565b50600160a060020a03808316600081815260196020908152604080832060025482518401859052825160e060020a63a9059cbb02815260048101969096526024860188905291519095919091169363a9059cbb9360448083019493928390030190829087803b156100005760325a03f11561000057505060405151151590506108c657610000565b6108d4816003015483611983565b600382015580546108e59034611983565b81556008546108f49034611983565b600855600a546109049083611983565b600a55610910826119ab565b60085460408051600160a060020a0386168152602081019290925280517f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249281900390910190a15b5b5b505050565b600d5481565b60075481565b60175481565b600f5481565b600b5481565b600060006000600160149054906101000a900460ff161561099d57610000565b600c544210806109ae5750600d5442115b156109b857610000565b600554600160a060020a0390811690331681146109d457610000565b6012548610156109e357610000565b6109f76109f2876007546118f9565b611925565b9250600f54610a138461082e600a54600b54611983565b611983565b1115610ad0577f814fbd8fb190f1cdc35f88639623ebbfa85945ce6f18810f4cd19c8bad0d193887876040518080602001838152602001828103825284818151815260200191508051906020019080838360008314610a8d575b805182526020831115610a8d57601f199092019160209182019101610a6d565b505050905090810190601f168015610ab95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a160009350610d86565b600160a060020a03808916600081815260196020908152604080832060025482518401859052825160e060020a63a9059cbb0281526004810196909652602486018a9052915190975094169363a9059cbb93604480820194918390030190829087803b156100005760325a03f1156100005750506040515115159050610b5557610000565b610b63826003015484611983565b826003018190555086826001019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610bb957805160ff1916838001178555610be6565b82800160010185558215610be6579182015b82811115610be6578251825591602001919060010190610bcb565b5b50610c079291505b80821115610c035760008155600101610bef565b5090565b5050610c17826002015487611983565b6002830155600954610c299087611983565b600955600b54610c399084611983565b600b55610c45836119ab565b7fe9c33249e1fd880f34c0b01faa90e58b5a8aa3561e225d5d5ec64113ad9bf15e8888600954886040518085600160a060020a0316600160a060020a031681526020018060200184815260200180602001838103835286818151815260200191508051906020019080838360008314610cd9575b805182526020831115610cd957601f199092019160209182019101610cb9565b505050905090810190601f168015610d055780820380516001836020036101000a031916815260200191505b5083810382528451815284516020918201918601908083838215610d44575b805182526020831115610d4457601f199092019160209182019101610d24565b505050905090810190601f168015610d705780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1600193505b5b505b5b5050949350505050565b600a5481565b600554600160a060020a031681565b60115481565b600e5481565b600c5481565b600354600090600160a060020a039081169033168114610dda57610000565b65048c27395000600f5403600b54600a5401108015610dfa5750600d5442105b15610e0457610000565b600e54600b54600a5401108015610e215750600d546213c6800142105b15610e2b57610000565b600454604051600160a060020a039182169130163180156108fc02916000818181858888f193505050501515610e6057610000565b661550f7dca700006017541115610f03576002546014546040805160006020918201819052825160e060020a63a9059cbb028152600160a060020a039485166004820152661550f7dca7000060248201529251939094169363a9059cbb936044808501949192918390030190829087803b156100005760325a03f1156100005750506040515115159050610ef357610000565b661550f7dca70000601755610f84565b6002546014546017546040805160006020918201819052825160e060020a63a9059cbb028152600160a060020a03958616600482015260248101949094529151939094169363a9059cbb93604480850194929391928390030190829087803b156100005760325a03f1156100005750506040515115159050610f8457610000565b5b661550f7dca70000601654111561102d576002546013546040805160006020918201819052825160e060020a63a9059cbb028152610100909404600160a060020a039081166004860152661550f7dca7000060248601529251929094169363a9059cbb9360448082019492918390030190829087803b156100005760325a03f115610000575050604051511515905061101d57610000565b661550f7dca700006016556110b3565b6002546013546016546040805160006020918201819052825160e060020a63a9059cbb028152610100909504600160a060020a03908116600487015260248601949094529151929094169363a9059cbb936044808201949293918390030190829087803b156100005760325a03f11561000057505060405151151590506110b357610000565b5b6002546015546018546040805160006020918201819052825160e060020a63a9059cbb028152600160a060020a03958616600482015260248101949094529151939094169363a9059cbb93604480850194929391928390030190829087803b156100005760325a03f115610000575050604051511515905061113557610000565b600a54600b54601854601654601754010101019150600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151831015905061128557600254604080516000602091820181905282517f18160ddd0000000000000000000000000000000000000000000000000000000081529251600160a060020a03909416936342966c6893879386936318160ddd936004808501949192918390030190829087803b156100005760325a03f1156100005750505060405180519050036000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b156100005760325a03f115610000575050505b600254604080517fa69df4b50000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163a69df4b59160048082019260009290919082900301818387803b156100005760325a03f1156100005750506013805460ff19166001179055505b5b5050565b60185481565b60085481565b33600160a060020a03811660009081526020819052604090205480151561132f57610000565b8030600160a060020a031631101561134657610000565b600160a060020a0382166000818152602081905260408082208290555183156108fc0291849190818181858888f19350505050151561138457610000565b60408051600160a060020a03841681526020810183905281517f289360176646a5f99cb4b6300628426dca46b723f40db3c04449d6ed1745a0e7929181900390910190a15b5050565b600554600160a060020a0390811690331681146113e957610000565b60068290555b5b5050565b60015433600160a060020a03908116911614156101cd576001805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5b565b60015460a060020a900460ff1681565b600454600160a060020a031681565b601554600160a060020a031681565b60015433600160a060020a03908116911614156101cd5760015460a060020a900460ff16151561149157610000565b6001805474ff0000000000000000000000000000000000000000191690555b5b5b5b565b600354600160a060020a031681565b60006000600d544210806114e05750600e54600b54600a540110155b156114ea57610000565b60025433600160a060020a0390811691161461150557610000565b82511561151157610000565b600160a060020a038616600090815260196020526040902060030154851461153857610000565b600254604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301523081166024830152604482018b9052935193909416936323b872dd936064808301949391928390030190829087803b156100005760325a03f11561000057505060405151151590506115cf57610000565b600254604080516000602091820181905282517f42966c68000000000000000000000000000000000000000000000000000000008152600481018a90529251600160a060020a03909416936342966c689360248082019493918390030190829087803b156100005760325a03f115610000575050604051511515905061165457610000565b5050600160a060020a0384166000908152601960205260408120805482825560029091018054908390559091821115611691576116918683611a5a565b5b6000811115611784577f814fbd8fb190f1cdc35f88639623ebbfa85945ce6f18810f4cd19c8bad0d19386019600088600160a060020a0316600160a060020a031681526020019081526020016000206001018260405180806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156117745780601f1061174957610100808354040283529160200191611774565b820191906000526020600020905b81548152906001019060200180831161175757829003601f168201915b5050935050505060405180910390a15b5b5b505050505050565b6013546101009004600160a060020a031681565b60165481565b600354600160a060020a0390811690331681146117c457610000565b600354604051600160a060020a039182169130163180156108fc02916000818181858888f1935050505015156117f957610000565b5b5b50565b60095481565b60125481565b600254600160a060020a031681565b601960205260009081526040902080546002820154600383015491926001019184565b600354600160a060020a03908116903316811461185857610000565b42600c81905562278d0001600d555b5b50565b60065481565b60105460ff1681565b60135460ff1681565b601454600160a060020a031681565b60006020819052908152604090205481565b60015433600160a060020a03908116911614156117f957600160a060020a038116156117f9576001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b5b50565b600082820261191a841580611915575083858381156100005704145b611a7d565b8091505b5092915050565b6000611936600c54620d2f00611983565b4210156119515761194a8260058104611983565b905061197e565b611960600c54621a5e00611983565b42101561197b5761194a82600a8104611983565b905061197e565b50805b919050565b600082820161191a8482108015906119155750838210155b611a7d565b8091505b5092915050565b6016546119bb90600a8304611983565b6016556018546119ce9060148304611983565b6018556017546119e190600a8304611983565b60175560408051828152602081018290526007818301527f656d6974524c430000000000000000000000000000000000000000000000000060608201529051600160a060020a033316917ff07d0c498347325f36d84d7b88e3a3e93c346104df91dc30c953bcf42fbade97919081900360800190a25b50565b600160a060020a03821660009081526020819052604090208054820190555b5050565b8015156117f957610000565b5b505600a165627a7a72305820085d1480f02a429a53e35c5f2cad0afc414711d1904ecc2560d1a69326a5f2f80029
Deployed Bytecode
0x606060405236156101b15763ffffffff60e060020a600035041663083c632381146101d257806309ce4a91146101f15780631712649b1461021057806323548b8b1461022f57806328198eab1461024e5780632e18270f1461026d5780632f3f234a14610320578063316661441461033f57806335c2d49d146103685780633fa615b01461038757806348cd4cb1146103a65780634bb278f3146103c55780635353e168146103d457806358275869146103f35780636103d70b1461041257806361046d8b1461042157806363a599a41461043357806375f12b2114610442578063823914d91461046357806385f2aef21461048c57806386d1a69f146104b55780638da5cb5b146104c45780638f4ffcb1146104ed578063943dfef11461055857806397eb147d146105815780639890220b146105a057806399ceb6e6146105af578063abc2a40a146105ce578063b017c036146105ed578063b85dfb8014610616578063be9a6555146106ce578063c33a5bb6146106dd578063c7ff1b60146106fc578063ccb07cef1461071d578063cd3293de1461073e578063e2982c2114610767578063f2fde38b14610792575b6101d05b600d544211156101c457610000565b6101cd336107ad565b5b565b005b34610000576101df61095f565b60408051918252519081900360200190f35b34610000576101df610965565b60408051918252519081900360200190f35b34610000576101df61096b565b60408051918252519081900360200190f35b34610000576101df610971565b60408051918252519081900360200190f35b34610000576101df610977565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f810185900485028601850190965285855261030c958335600160a060020a0316959394604494939290920191819084018382808284375050604080516020601f818a01358b0180359182018390048302840183018552818452989a8a359a90999401975091955091820193509150819084018382808284375094965061097d95505050505050565b604080519115158252519081900360200190f35b34610000576101df610d94565b60408051918252519081900360200190f35b346100005761034c610d9a565b60408051600160a060020a039092168252519081900360200190f35b34610000576101df610da9565b60408051918252519081900360200190f35b34610000576101df610daf565b60408051918252519081900360200190f35b34610000576101df610db5565b60408051918252519081900360200190f35b34610000576101d0610dbb565b005b34610000576101df6112fd565b60408051918252519081900360200190f35b34610000576101df611303565b60408051918252519081900360200190f35b34610000576101d0611309565b005b34610000576101d06004356113cd565b005b34610000576101d06113f4565b005b346100005761030c611434565b604080519115158252519081900360200190f35b346100005761034c611444565b60408051600160a060020a039092168252519081900360200190f35b346100005761034c611453565b60408051600160a060020a039092168252519081900360200190f35b34610000576101d0611462565b005b346100005761034c6114b5565b60408051600160a060020a039092168252519081900360200190f35b3461000057604080516020600460643581810135601f81018490048402850184019095528484526101d0948235600160a060020a03908116956024803596604435909316959460849492939101919081908401838280828437509496506114c495505050505050565b005b346100005761034c61178e565b60408051600160a060020a039092168252519081900360200190f35b34610000576101df6117a2565b60408051918252519081900360200190f35b34610000576101d06117a8565b005b34610000576101df6117fe565b60408051918252519081900360200190f35b34610000576101df611804565b60408051918252519081900360200190f35b346100005761034c61180a565b60408051600160a060020a039092168252519081900360200190f35b346100005761062f600160a060020a0360043516611819565b60408051858152908101839052606081018290526080602082018181528554600260001961010060018416150201909116049183018290529060a0830190869080156106bc5780601f10610691576101008083540402835291602001916106bc565b820191906000526020600020905b81548152906001019060200180831161069f57829003601f168201915b50509550505050505060405180910390f35b34610000576101d061183c565b005b34610000576101df61186b565b60408051918252519081900360200190f35b346100005761030c611871565b604080519115158252519081900360200190f35b346100005761030c61187a565b604080519115158252519081900360200190f35b346100005761034c611883565b60408051600160a060020a039092168252519081900360200190f35b34610000576101df600160a060020a0360043516611892565b60408051918252519081900360200190f35b34610000576101d0600160a060020a03600435166118a4565b005b600154600090819060a060020a900460ff16156107c957610000565b600c544210806107da5750600d5442115b156107e457610000565b6011543410156107f357610000565b610817670de0b6b3a764000061080b346006546118f9565b81156100005704611925565b9150600f546108338361082e600a54600b54611983565b611983565b111561083e57610000565b50600160a060020a03808316600081815260196020908152604080832060025482518401859052825160e060020a63a9059cbb02815260048101969096526024860188905291519095919091169363a9059cbb9360448083019493928390030190829087803b156100005760325a03f11561000057505060405151151590506108c657610000565b6108d4816003015483611983565b600382015580546108e59034611983565b81556008546108f49034611983565b600855600a546109049083611983565b600a55610910826119ab565b60085460408051600160a060020a0386168152602081019290925280517f4103257eaac983ca79a70d28f90dfc4fa16b619bb0c17ee7cab0d4034c2796249281900390910190a15b5b5b505050565b600d5481565b60075481565b60175481565b600f5481565b600b5481565b600060006000600160149054906101000a900460ff161561099d57610000565b600c544210806109ae5750600d5442115b156109b857610000565b600554600160a060020a0390811690331681146109d457610000565b6012548610156109e357610000565b6109f76109f2876007546118f9565b611925565b9250600f54610a138461082e600a54600b54611983565b611983565b1115610ad0577f814fbd8fb190f1cdc35f88639623ebbfa85945ce6f18810f4cd19c8bad0d193887876040518080602001838152602001828103825284818151815260200191508051906020019080838360008314610a8d575b805182526020831115610a8d57601f199092019160209182019101610a6d565b505050905090810190601f168015610ab95780820380516001836020036101000a031916815260200191505b50935050505060405180910390a160009350610d86565b600160a060020a03808916600081815260196020908152604080832060025482518401859052825160e060020a63a9059cbb0281526004810196909652602486018a9052915190975094169363a9059cbb93604480820194918390030190829087803b156100005760325a03f1156100005750506040515115159050610b5557610000565b610b63826003015484611983565b826003018190555086826001019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610bb957805160ff1916838001178555610be6565b82800160010185558215610be6579182015b82811115610be6578251825591602001919060010190610bcb565b5b50610c079291505b80821115610c035760008155600101610bef565b5090565b5050610c17826002015487611983565b6002830155600954610c299087611983565b600955600b54610c399084611983565b600b55610c45836119ab565b7fe9c33249e1fd880f34c0b01faa90e58b5a8aa3561e225d5d5ec64113ad9bf15e8888600954886040518085600160a060020a0316600160a060020a031681526020018060200184815260200180602001838103835286818151815260200191508051906020019080838360008314610cd9575b805182526020831115610cd957601f199092019160209182019101610cb9565b505050905090810190601f168015610d055780820380516001836020036101000a031916815260200191505b5083810382528451815284516020918201918601908083838215610d44575b805182526020831115610d4457601f199092019160209182019101610d24565b505050905090810190601f168015610d705780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1600193505b5b505b5b5050949350505050565b600a5481565b600554600160a060020a031681565b60115481565b600e5481565b600c5481565b600354600090600160a060020a039081169033168114610dda57610000565b65048c27395000600f5403600b54600a5401108015610dfa5750600d5442105b15610e0457610000565b600e54600b54600a5401108015610e215750600d546213c6800142105b15610e2b57610000565b600454604051600160a060020a039182169130163180156108fc02916000818181858888f193505050501515610e6057610000565b661550f7dca700006017541115610f03576002546014546040805160006020918201819052825160e060020a63a9059cbb028152600160a060020a039485166004820152661550f7dca7000060248201529251939094169363a9059cbb936044808501949192918390030190829087803b156100005760325a03f1156100005750506040515115159050610ef357610000565b661550f7dca70000601755610f84565b6002546014546017546040805160006020918201819052825160e060020a63a9059cbb028152600160a060020a03958616600482015260248101949094529151939094169363a9059cbb93604480850194929391928390030190829087803b156100005760325a03f1156100005750506040515115159050610f8457610000565b5b661550f7dca70000601654111561102d576002546013546040805160006020918201819052825160e060020a63a9059cbb028152610100909404600160a060020a039081166004860152661550f7dca7000060248601529251929094169363a9059cbb9360448082019492918390030190829087803b156100005760325a03f115610000575050604051511515905061101d57610000565b661550f7dca700006016556110b3565b6002546013546016546040805160006020918201819052825160e060020a63a9059cbb028152610100909504600160a060020a03908116600487015260248601949094529151929094169363a9059cbb936044808201949293918390030190829087803b156100005760325a03f11561000057505060405151151590506110b357610000565b5b6002546015546018546040805160006020918201819052825160e060020a63a9059cbb028152600160a060020a03958616600482015260248101949094529151939094169363a9059cbb93604480850194929391928390030190829087803b156100005760325a03f115610000575050604051511515905061113557610000565b600a54600b54601854601654601754010101019150600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151831015905061128557600254604080516000602091820181905282517f18160ddd0000000000000000000000000000000000000000000000000000000081529251600160a060020a03909416936342966c6893879386936318160ddd936004808501949192918390030190829087803b156100005760325a03f1156100005750505060405180519050036000604051602001526040518263ffffffff1660e060020a02815260040180828152602001915050602060405180830381600087803b156100005760325a03f115610000575050505b600254604080517fa69df4b50000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163a69df4b59160048082019260009290919082900301818387803b156100005760325a03f1156100005750506013805460ff19166001179055505b5b5050565b60185481565b60085481565b33600160a060020a03811660009081526020819052604090205480151561132f57610000565b8030600160a060020a031631101561134657610000565b600160a060020a0382166000818152602081905260408082208290555183156108fc0291849190818181858888f19350505050151561138457610000565b60408051600160a060020a03841681526020810183905281517f289360176646a5f99cb4b6300628426dca46b723f40db3c04449d6ed1745a0e7929181900390910190a15b5050565b600554600160a060020a0390811690331681146113e957610000565b60068290555b5b5050565b60015433600160a060020a03908116911614156101cd576001805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b5b565b60015460a060020a900460ff1681565b600454600160a060020a031681565b601554600160a060020a031681565b60015433600160a060020a03908116911614156101cd5760015460a060020a900460ff16151561149157610000565b6001805474ff0000000000000000000000000000000000000000191690555b5b5b5b565b600354600160a060020a031681565b60006000600d544210806114e05750600e54600b54600a540110155b156114ea57610000565b60025433600160a060020a0390811691161461150557610000565b82511561151157610000565b600160a060020a038616600090815260196020526040902060030154851461153857610000565b600254604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301523081166024830152604482018b9052935193909416936323b872dd936064808301949391928390030190829087803b156100005760325a03f11561000057505060405151151590506115cf57610000565b600254604080516000602091820181905282517f42966c68000000000000000000000000000000000000000000000000000000008152600481018a90529251600160a060020a03909416936342966c689360248082019493918390030190829087803b156100005760325a03f115610000575050604051511515905061165457610000565b5050600160a060020a0384166000908152601960205260408120805482825560029091018054908390559091821115611691576116918683611a5a565b5b6000811115611784577f814fbd8fb190f1cdc35f88639623ebbfa85945ce6f18810f4cd19c8bad0d19386019600088600160a060020a0316600160a060020a031681526020019081526020016000206001018260405180806020018381526020018281038252848181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156117745780601f1061174957610100808354040283529160200191611774565b820191906000526020600020905b81548152906001019060200180831161175757829003601f168201915b5050935050505060405180910390a15b5b5b505050505050565b6013546101009004600160a060020a031681565b60165481565b600354600160a060020a0390811690331681146117c457610000565b600354604051600160a060020a039182169130163180156108fc02916000818181858888f1935050505015156117f957610000565b5b5b50565b60095481565b60125481565b600254600160a060020a031681565b601960205260009081526040902080546002820154600383015491926001019184565b600354600160a060020a03908116903316811461185857610000565b42600c81905562278d0001600d555b5b50565b60065481565b60105460ff1681565b60135460ff1681565b601454600160a060020a031681565b60006020819052908152604090205481565b60015433600160a060020a03908116911614156117f957600160a060020a038116156117f9576001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b5b50565b600082820261191a841580611915575083858381156100005704145b611a7d565b8091505b5092915050565b6000611936600c54620d2f00611983565b4210156119515761194a8260058104611983565b905061197e565b611960600c54621a5e00611983565b42101561197b5761194a82600a8104611983565b905061197e565b50805b919050565b600082820161191a8482108015906119155750838210155b611a7d565b8091505b5092915050565b6016546119bb90600a8304611983565b6016556018546119ce9060148304611983565b6018556017546119e190600a8304611983565b60175560408051828152602081018290526007818301527f656d6974524c430000000000000000000000000000000000000000000000000060608201529051600160a060020a033316917ff07d0c498347325f36d84d7b88e3a3e93c346104df91dc30c953bcf42fbade97919081900360800190a25b50565b600160a060020a03821660009081526020819052604090208054820190555b5050565b8015156117f957610000565b5b505600a165627a7a72305820085d1480f02a429a53e35c5f2cad0afc414711d1904ecc2560d1a69326a5f2f80029
Swarm Source
bzzr://085d1480f02a429a53e35c5f2cad0afc414711d1904ecc2560d1a69326a5f2f8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
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.