Overview
ETH Balance
0.0623 ETH
Eth Value
$222.90 (@ $3,577.93/ETH)More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 30 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Initial Buy Card | 13038813 | 955 days ago | IN | 0.019 ETH | 0.01411966 | ||||
Withdraw | 12932944 | 971 days ago | IN | 0 ETH | 0.00043057 | ||||
Withdraw | 12416517 | 1052 days ago | IN | 0 ETH | 0.0041263 | ||||
Initial Buy Card | 5308585 | 2197 days ago | IN | 0.016 ETH | 0.00237278 | ||||
Initial Buy Card | 5242186 | 2208 days ago | IN | 0.015 ETH | 0.00189515 | ||||
Initial Buy Card | 5237238 | 2209 days ago | IN | 0.014 ETH | 0.00082059 | ||||
Withdraw | 5237167 | 2209 days ago | IN | 0 ETH | 0.00019429 | ||||
Buy Card | 5235280 | 2209 days ago | IN | 0.01 ETH | 0.00023925 | ||||
Initial Buy Card | 5233259 | 2210 days ago | IN | 0.013 ETH | 0.00150942 | ||||
Initial Buy Card | 5233235 | 2210 days ago | IN | 0.098 ETH | 0.0009855 | ||||
Edit Card | 5233229 | 2210 days ago | IN | 0 ETH | 0.00036384 | ||||
Initial Buy Card | 5233220 | 2210 days ago | IN | 0.1 ETH | 0.00118447 | ||||
Initial Buy Card | 5231526 | 2210 days ago | IN | 0.012 ETH | 0.00142174 | ||||
Initial Buy Card | 5220773 | 2212 days ago | IN | 0.099 ETH | 0.00071337 | ||||
Sell Card | 5193917 | 2216 days ago | IN | 0 ETH | 0.00057697 | ||||
Initial Buy Card | 5193895 | 2216 days ago | IN | 0.011 ETH | 0.00600568 | ||||
Sell Card | 5193828 | 2216 days ago | IN | 0 ETH | 0.00015845 | ||||
Sell Card | 5193622 | 2216 days ago | IN | 0 ETH | 0.00048017 | ||||
Initial Buy Card | 5193568 | 2216 days ago | IN | 0.01 ETH | 0.00354957 | ||||
Initial Buy Card | 5192520 | 2216 days ago | IN | 0.009 ETH | 0.00051995 | ||||
Initial Buy Card | 5192481 | 2216 days ago | IN | 0.008 ETH | 0.00011755 | ||||
Initial Buy Card | 5192480 | 2216 days ago | IN | 0.007 ETH | 0.00078507 | ||||
Initial Buy Card | 5192375 | 2216 days ago | IN | 0.008 ETH | 0.00047276 | ||||
Initial Buy Card | 5190550 | 2217 days ago | IN | 0.005 ETH | 0.0009019 | ||||
Initial Buy Card | 5190544 | 2217 days ago | IN | 0.004 ETH | 0.00087372 |
Loading...
Loading
Contract Name:
Dappster
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-03-03 */ pragma solidity ^0.4.19; contract Dappster { /// Lease record, store card tenants details /// and lease details struct LeaseCard { uint id; address tenant; uint price; uint untilBlock; string title; string url; string image; } /// Record card details struct CardDetails { uint8 id; uint price; uint priceLease; // price per block uint leaseDuration; // in block bool availableBuy; bool availableLease; uint[] leaseList; mapping(uint => LeaseCard) leaseCardStructs; } /// Record card struct Card { uint8 id; address owner; string title; string url; string image; bool nsfw; } /// Users pending withdrawals mapping(address => uint) public pendingWithdrawals; mapping(uint8 => Card) public cardStructs; // random access by card key uint8[] public cardList; // list of announce keys so we can enumerate them mapping(uint8 => CardDetails) public cardDetailsStructs; // random access by card details key uint8[] public cardDetailsList; // list of cards details keys so we can enumerate them /// Initial card price uint public initialCardPrice = 0.1 ether; /// Owner cut (1%) . This cut only apply on a user-to-user card transaction uint public ownerBuyCut = 100; /// fluffyCat cut (10%) uint public fluffyCatCut = 1000; /// contractOwner can withdraw the funds address public contractOwner; /// fluffyCat address address public fluffyCatAddress = 0x2c00A5013aA2E600663f7b197C98db73bA847e6d; /// Contract constructor function Dappster() public { contractOwner = msg.sender; } modifier onlyContractOwner() { // Throws if called by any account other than the contract owner require(msg.sender == contractOwner); _; } modifier onlyCardOwner(uint8 cardId) { // Throws if called by any account other than the card owner require(msg.sender == cardStructs[cardId].owner); _; } modifier onlyValidCard(uint8 cardId) { // Throws if card is not valid require(cardId >= 1 && cardId <= 100); _; } /// Return cardList array function getCards() public view returns(uint8[]) { uint8[] memory result = new uint8[](cardList.length); uint8 counter = 0; for (uint8 i = 0; i < cardList.length; i++) { result[counter] = i; counter++; } return result; } /// Return cardDetailsList array function getCardsDetails() public view returns(uint8[]) { uint8[] memory result = new uint8[](cardDetailsList.length); uint8 counter = 0; for (uint8 i = 0; i < cardDetailsList.length; i++) { result[counter] = i; counter++; } return result; } /// Return card details by id function getCardDetails(uint8 cardId) public view onlyValidCard(cardId) returns (uint8 id, uint price, uint priceLease, uint leaseDuration, bool availableBuy, bool availableLease) { bool _buyAvailability; if (cardDetailsStructs[cardId].id == 0 || cardDetailsStructs[cardId].availableBuy) { _buyAvailability = true; } CardDetails storage detail = cardDetailsStructs[cardId]; return ( detail.id, detail.price, detail.priceLease, detail.leaseDuration, _buyAvailability, detail.availableLease ); } /// Return card by id function getCard(uint8 cardId) public view onlyValidCard(cardId) returns (uint8 id, address owner, string title, string url, string image, bool nsfw) { Card storage card = cardStructs[cardId]; id = card.id; owner = card.owner; title = card.title; url = card.url; image = card.image; nsfw = card.nsfw; } /// This is called on the initial buy card, user to user buy is at buyCard() /// Amount is sent to contractOwner balance and fluffycat get 10% of this amount function initialBuyCard(uint8 cardId, string title, string url, string image) public onlyValidCard(cardId) payable returns (bool success) { // Check sent amount uint price = computeInitialPrice(cardId); require(msg.value >= price); // If owner is 0x0, then we are sure that // this is the initial buy require(cardStructs[cardId].owner == address(0)); // Fill card _fillCardStruct(cardId, msg.sender, title, url, image); // Set nsfw flag to false cardStructs[cardId].nsfw = false; // Contract credit 10% of price to FluffyCat _applyShare(contractOwner, fluffyCatAddress, fluffyCatCut); // Initialize card details _initCardDetails(cardId, price); // Add the card to cardList cardList.push(cardId); return true; } /// Perform a user to user buy transaction /// Contract owner takes 1% cut on each of this transaction function buyCard(uint8 cardId, string title, string url, string image) public onlyValidCard(cardId) payable returns (bool success) { // Check that this is not an initial buy, i.e. that the // card belongs to someone require(cardStructs[cardId].owner != address(0)); // Check if card is on sale require(cardDetailsStructs[cardId].availableBuy); // Check sent amount uint price = cardDetailsStructs[cardId].price; require(msg.value >= price); address previousOwner = cardStructs[cardId].owner; // Take 1% cut on buy _applyShare(previousOwner, contractOwner, ownerBuyCut); // Fill card _fillCardStruct(cardId, msg.sender, title, url, image); // Set nsfw flag to false cardStructs[cardId].nsfw = false; // Disable sell status cardDetailsStructs[cardId].availableBuy = false; return true; } /// Allow card owner to edit his card informations function editCard(uint8 cardId, string title, string url, string image) public onlyValidCard(cardId) onlyCardOwner(cardId) returns (bool success) { // Fill card _fillCardStruct(cardId, msg.sender, title, url, image); // Disable sell status return true; } /// Allow card owner to set his card on sale at specific price function sellCard(uint8 cardId, uint price) public onlyValidCard(cardId) onlyCardOwner(cardId) returns (bool success) { cardDetailsStructs[cardId].price = price; cardDetailsStructs[cardId].availableBuy = true; return true; } /// Allow card owner to cancel sell offer function cancelSellCard(uint8 cardId) public onlyValidCard(cardId) onlyCardOwner(cardId) returns (bool success) { cardDetailsStructs[cardId].availableBuy = false; return true; } /// Allow card owner to set his card on lease at fixed price per block and duration function setLeaseCard(uint8 cardId, uint priceLease, uint leaseDuration) public onlyValidCard(cardId) onlyCardOwner(cardId) returns (bool success) { // Card cannot be on sale when setting lease // cancelSellCard() first require(!cardDetailsStructs[cardId].availableBuy); // Card cannot be set on lease while currently leasing uint _lastLeaseId = getCardLeaseLength(cardId); uint _until = cardDetailsStructs[cardId].leaseCardStructs[_lastLeaseId].untilBlock; require(_until < block.number); cardDetailsStructs[cardId].priceLease = priceLease; cardDetailsStructs[cardId].availableLease = true; cardDetailsStructs[cardId].leaseDuration = leaseDuration; return true; } /// Allow card owner to cancel lease offer /// Note that this do not interrupt current lease if any function cancelLeaseOffer(uint8 cardId) public onlyValidCard(cardId) onlyCardOwner(cardId) returns (bool success) { cardDetailsStructs[cardId].availableLease = false; return true; } /// Allow future tenant to lease a card function leaseCard(uint8 cardId, string title, string url, string image) public onlyValidCard(cardId) payable returns (bool success) { CardDetails storage details = cardDetailsStructs[cardId]; // Check that card is avaible to lease require(details.availableLease); // Get price (per block) and leaseDuration (block) uint price = details.priceLease; uint leaseDuration = details.leaseDuration; uint totalAmount = price * leaseDuration; // Check that amount sent is sufficient require(msg.value >= totalAmount); // Get new lease id uint leaseId = getCardLeaseLength(cardId) + 1; // Get the block number of lease end uint untilBlock = block.number + leaseDuration; // Take 1% cut on lease Card storage card = cardStructs[cardId]; address _cardOwner = card.owner; _applyShare(_cardOwner, contractOwner, ownerBuyCut); // Fill leaseCardStructs details.leaseCardStructs[leaseId].id = leaseId; details.leaseCardStructs[leaseId].tenant = msg.sender; details.leaseCardStructs[leaseId].price = totalAmount; details.leaseCardStructs[leaseId].untilBlock = untilBlock; details.leaseCardStructs[leaseId].title = title; details.leaseCardStructs[leaseId].url = url; details.leaseCardStructs[leaseId].image = image; // Leases are now unavailable for this card details.availableLease = false; // Add lease to leases list of correspondant cardDetails details.leaseList.push(leaseId); return true; } /// Get last lease from a card function getLastLease(uint8 cardId) public view returns(uint leaseIndex, address tenant, uint untilBlock, string title, string url, string image) { uint _leaseIndex = getCardLeaseLength(cardId); return getLease(cardId, _leaseIndex); } /// Get lease from card function getLease(uint8 cardId, uint leaseId) public view returns(uint leaseIndex, address tenant, uint untilBlock, string title, string url, string image) { return( cardDetailsStructs[cardId].leaseCardStructs[leaseId].id, cardDetailsStructs[cardId].leaseCardStructs[leaseId].tenant, cardDetailsStructs[cardId].leaseCardStructs[leaseId].untilBlock, cardDetailsStructs[cardId].leaseCardStructs[leaseId].title, cardDetailsStructs[cardId].leaseCardStructs[leaseId].url, cardDetailsStructs[cardId].leaseCardStructs[leaseId].image ); } /// Get lease list from a card function getCardLeaseLength(uint8 cardId) public view returns(uint cardLeasesCount) { return(cardDetailsStructs[cardId].leaseList.length); } /// Transfer the ownership of a card function transferCardOwnership(address to, uint8 cardId) public onlyCardOwner(cardId) returns (bool success) { // Transfer card ownership cardStructs[cardId].owner = to; return true; } /// Return balance from sender function getBalance() public view returns (uint amount) { return pendingWithdrawals[msg.sender]; } /// Allow address to withdraw their balance function withdraw() public returns (bool) { uint amount = pendingWithdrawals[msg.sender]; // Remember to zero the pending refund before // sending to prevent re-entrancy attacks pendingWithdrawals[msg.sender] = 0; msg.sender.transfer(amount); return true; } /// Compute initial card price (in wei) function computeInitialPrice(uint8 cardId) public view onlyValidCard(cardId) returns (uint price) { // 0.1 ether - 0.001 ether * (cardId - 1) return initialCardPrice - ((initialCardPrice / 100) * (uint256(cardId) - 1)); } /// Allow contract owner to set NSFW flag on a card function setNSFW(uint8 cardId, bool flag) public onlyValidCard(cardId) onlyContractOwner() returns (bool success) { cardStructs[cardId].nsfw = flag; return true; } /// Fill Card struct function _fillCardStruct(uint8 _cardId, address _owner, string _title, string _url, string _image) internal returns (bool success) { cardStructs[_cardId].owner = _owner; cardStructs[_cardId].title = _title; cardStructs[_cardId].url = _url; cardStructs[_cardId].image = _image; return true; } /// Initialize sell card for future function _initCardDetails(uint8 cardId, uint price) internal returns (bool success) { // priceLease, leaseDuration set to default value(= 0) cardDetailsStructs[cardId].id = cardId; cardDetailsStructs[cardId].price = price; cardDetailsStructs[cardId].availableBuy = false; cardDetailsStructs[cardId].availableLease = false; cardDetailsList.push(cardId); return true; } /// Send split amounts to respective balances function _applyShare(address _seller, address _auctioneer, uint _cut) internal returns (bool success) { // Compute share uint256 auctioneerCut = _computeCut(msg.value, _cut); uint256 sellerProceeds = msg.value - auctioneerCut; // Credit seller balance pendingWithdrawals[_seller] += sellerProceeds; // Credit auctionner balance pendingWithdrawals[_auctioneer] += auctioneerCut; return true; } /// Compute _cut from a _price function _computeCut(uint256 _price, uint256 _cut) internal pure returns (uint256) { return _price * _cut / 10000; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"cardDetailsStructs","outputs":[{"name":"id","type":"uint8"},{"name":"price","type":"uint256"},{"name":"priceLease","type":"uint256"},{"name":"leaseDuration","type":"uint256"},{"name":"availableBuy","type":"bool"},{"name":"availableLease","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cardId","type":"uint8"}],"name":"getCard","outputs":[{"name":"id","type":"uint8"},{"name":"owner","type":"address"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"},{"name":"nsfw","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownerBuyCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"},{"name":"price","type":"uint256"}],"name":"sellCard","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"}],"name":"cancelLeaseOffer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cardDetailsList","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fluffyCatAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fluffyCatCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cardId","type":"uint8"}],"name":"getCardLeaseLength","outputs":[{"name":"cardLeasesCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"}],"name":"initialBuyCard","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"},{"name":"priceLease","type":"uint256"},{"name":"leaseDuration","type":"uint256"}],"name":"setLeaseCard","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"}],"name":"editCard","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"}],"name":"leaseCard","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"cardId","type":"uint8"},{"name":"leaseId","type":"uint256"}],"name":"getLease","outputs":[{"name":"leaseIndex","type":"uint256"},{"name":"tenant","type":"address"},{"name":"untilBlock","type":"uint256"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cardId","type":"uint8"}],"name":"computeInitialPrice","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCards","outputs":[{"name":"","type":"uint8[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"cardId","type":"uint8"}],"name":"getCardDetails","outputs":[{"name":"id","type":"uint8"},{"name":"price","type":"uint256"},{"name":"priceLease","type":"uint256"},{"name":"leaseDuration","type":"uint256"},{"name":"availableBuy","type":"bool"},{"name":"availableLease","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialCardPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"cardId","type":"uint8"}],"name":"transferCardOwnership","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"}],"name":"buyCard","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"cardStructs","outputs":[{"name":"id","type":"uint8"},{"name":"owner","type":"address"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"},{"name":"nsfw","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCardsDetails","outputs":[{"name":"","type":"uint8[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cardList","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"},{"name":"flag","type":"bool"}],"name":"setNSFW","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cardId","type":"uint8"}],"name":"cancelSellCard","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"cardId","type":"uint8"}],"name":"getLastLease","outputs":[{"name":"leaseIndex","type":"uint256"},{"name":"tenant","type":"address"},{"name":"untilBlock","type":"uint256"},{"name":"title","type":"string"},{"name":"url","type":"string"},{"name":"image","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"pendingWithdrawals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
606060405267016345785d8a000060055560646006556103e860075560098054600160a060020a031916732c00a5013aa2e600663f7b197c98db73ba847e6d179055341561004c57600080fd5b60088054600160a060020a03191633600160a060020a0316179055612068806100766000396000f30060606040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307806b19811461018457806309004eb1146101dc57806312065fe0146103635780631a9e3e18146103885780632cefc4291461039b5780633ccfd60b146103cb57806344fd584d146103de578063459a2192146103f757806373cb062014610423578063771acf311461045257806379081feb146104655780637b65d0ec1461047e5780637db33f99146105505780638014f2381461056f5780638df793d61461064c5780638f6f32751461071e578063a7f58c2414610868578063b0df9e5314610881578063b7b2a009146108e7578063ba0bc2f414610900578063bc2fe07b14610913578063c02d014014610938578063ce606ee014610a0a578063cf4e964a14610a1d578063d5bd57a114610bd7578063d9f035aa14610bea578063e6591f4e14610c00578063ec591b2014610c1e578063f0d8e96814610c37578063f3f4370314610c50575b600080fd5b341561018f57600080fd5b61019d60ff60043516610c6f565b60405160ff9096168652602086019490945260408086019390935260608501919091521515608084015290151560a083015260c0909101905180910390f35b34156101e757600080fd5b6101f560ff60043516610cad565b60405160ff87168152600160a060020a038616602082015281151560a082015260c0604082018181529060608301906080840190840188818151815260200191508051906020019080838360005b8381101561025b578082015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50848103835287818151815260200191508051906020019080838360005b838110156102be5780820151838201526020016102a6565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b50848103825286818151815260200191508051906020019080838360005b83811015610321578082015183820152602001610309565b50505050905090810190601f16801561034e5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b341561036e57600080fd5b610376610f1a565b60405190815260200160405180910390f35b341561039357600080fd5b610376610f37565b34156103a657600080fd5b6103b760ff60043516602435610f3d565b604051901515815260200160405180910390f35b34156103d657600080fd5b6103b7610fc5565b34156103e957600080fd5b6103b760ff60043516611017565b341561040257600080fd5b61040d600435611094565b60405160ff909116815260200160405180910390f35b341561042e57600080fd5b6104366110c6565b604051600160a060020a03909116815260200160405180910390f35b341561045d57600080fd5b6103766110d5565b341561047057600080fd5b61037660ff600435166110db565b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506110f395505050505050565b341561055b57600080fd5b6103b760ff60043516602435604435611205565b341561057a57600080fd5b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506112ff95505050505050565b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061137295505050505050565b341561072957600080fd5b61073a60ff60043516602435611536565b6040518087815260200186600160a060020a0316600160a060020a03168152602001858152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b838110156107a357808201518382015260200161078b565b50505050905090810190601f1680156107d05780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156108065780820151838201526020016107ee565b50505050905090810190601f1680156108335780820380516001836020036101000a031916815260200191505b508481038252858181518152602001915080519060200190808383600083811015610321578082015183820152602001610309565b341561087357600080fd5b61037660ff60043516611873565b341561088c57600080fd5b6108946118b6565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156108d35780820151838201526020016108bb565b505050509050019250505060405180910390f35b34156108f257600080fd5b61019d60ff60043516611939565b341561090b57600080fd5b6103766119f3565b341561091e57600080fd5b6103b7600160a060020a036004351660ff602435166119f9565b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650611a7695505050505050565b3415610a1557600080fd5b610436611b9f565b3415610a2857600080fd5b610a3660ff60043516611bae565b60405160ff87168152600160a060020a038616602082015281151560a082015260c060408201818152865460026000196101006001841615020190911604918301829052906060830190608084019060e085019089908015610ad95780601f10610aae57610100808354040283529160200191610ad9565b820191906000526020600020905b815481529060010190602001808311610abc57829003601f168201915b5050848103835287546002600019610100600184161502019091160480825260209091019088908015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050848103825286546002600019610100600184161502019091160480825260209091019087908015610bc15780601f10610b9657610100808354040283529160200191610bc1565b820191906000526020600020905b815481529060010190602001808311610ba457829003601f168201915b5050995050505050505050505060405180910390f35b3415610be257600080fd5b610894611bef565b3415610bf557600080fd5b61040d600435611c6a565b3415610c0b57600080fd5b6103b760ff600435166024351515611c78565b3415610c2957600080fd5b6103b760ff60043516611ce8565b3415610c4257600080fd5b61073a60ff60043516611d64565b3415610c5b57600080fd5b610376600160a060020a0360043516611dad565b60036020819052600091825260409091208054600182015460028301549383015460049093015460ff92831694919391928181169161010090041686565b600080610cb8611f3d565b610cc0611f3d565b610cc8611f3d565b6000808760018160ff1610158015610ce4575060648160ff1611155b1515610cef57600080fd5b60ff898116600090815260016020818152604092839020805481840180549682169e5061010091829004600160a060020a03169d50919750909460029381161590910260001901169190910491601f8301829004820290910190519081016040528092919081815260200182805460018160011615610100020316600290048015610dbb5780601f10610d9057610100808354040283529160200191610dbb565b820191906000526020600020905b815481529060010190602001808311610d9e57829003601f168201915b50505050509550816002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e5a5780601f10610e2f57610100808354040283529160200191610e5a565b820191906000526020600020905b815481529060010190602001808311610e3d57829003601f168201915b50505050509450816003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef95780601f10610ece57610100808354040283529160200191610ef9565b820191906000526020600020905b815481529060010190602001808311610edc57829003601f168201915b5050505060049390930154989a9799509597949660ff909516949350505050565b600160a060020a0333166000908152602081905260409020545b90565b60065481565b60008260018160ff1610158015610f58575060648160ff1611155b1515610f6357600080fd5b60ff8416600090815260016020526040902054849033600160a060020a039081166101009092041614610f9557600080fd5b50505060ff919091166000908152600360205260409020600180820192909255600401805460ff19168217905590565b600160a060020a03331660008181526020819052604080822080549083905591929082156108fc0290839051600060405180830381858888f19350505050151561100e57600080fd5b600191505b5090565b60008160018160ff1610158015611032575060648160ff1611155b151561103d57600080fd5b60ff8316600090815260016020526040902054839033600160a060020a03908116610100909204161461106f57600080fd5b50505060ff166000908152600360205260409020600401805461ff0019169055600190565b60048054829081106110a257fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600954600160a060020a031681565b60075481565b60ff1660009081526003602052604090206005015490565b6000808560018160ff161015801561110f575060648160ff1611155b151561111a57600080fd5b61112387611873565b9150348290101561113357600080fd5b60ff87166000908152600160205260409020546101009004600160a060020a03161561115e57600080fd5b61116b8733888888611dbf565b5060ff87166000908152600160205260409020600401805460ff191690556008546009546007546111a992600160a060020a03908116921690611e6b565b506111b48783611eb9565b5060028054600181016111c78382611f4f565b916000526020600020906020918282040191900689909190916101000a81548160ff021916908360ff16021790555050600192505050949350505050565b60008060008560018160ff1610158015611223575060648160ff1611155b151561122e57600080fd5b60ff8716600090815260016020526040902054879033600160a060020a03908116610100909204161461126057600080fd5b60ff808916600090815260036020526040902060040154161561128257600080fd5b61128b886110db565b60ff89166000908152600360208181526040808420858552600601909152909120015490945092504383106112bf57600080fd5b60ff881660009081526003602081905260409091206002810189905560048101805461ff0019166101001790550186905560019450505050509392505050565b60008460018160ff161015801561131a575060648160ff1611155b151561132557600080fd5b60ff8616600090815260016020526040902054869033600160a060020a03908116610100909204161461135757600080fd5b6113648733888888611dbf565b506001979650505050505050565b60008060008060008060008060008c60018160ff1610158015611399575060648160ff1611155b15156113a457600080fd5b60ff808f1660009081526003602052604090206004810154909a5061010090041615156113d057600080fd5b886002015497508860030154965086880295508534101515156113f257600080fd5b6113fb8e6110db565b60ff8f1660009081526001602081905260409091208054600854600654949093019850438b019750909550600160a060020a036101009091048116945061144792859290911690611e6b565b50600085815260068a016020526040902085815560018101805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a031617905560028101879055600381018590556004018d80516114a7929160200190611f88565b50600085815260068a01602052604090206005018c80516114cc929160200190611f88565b5060008581526006808b016020526040909120018b80516114f1929160200190611f88565b5060048901805461ff0019169055600589018054600181016115138382612002565b506000918252602090912001949094555060019c9b505050505050505050505050565b6000806000611543611f3d565b61154b611f3d565b611553611f3d565b600360008960ff1660ff168152602001908152602001600020600601600088815260200190815260200160002060000154600360008a60ff1660ff168152602001908152602001600020600601600089815260200190815260200160002060010160009054906101000a9004600160a060020a0316600360008b60ff1660ff16815260200190815260200160002060060160008a815260200190815260200160002060030154600360008c60ff1660ff16815260200190815260200160002060060160008b8152602001908152602001600020600401600360008d60ff1660ff16815260200190815260200160002060060160008c8152602001908152602001600020600501600360008e60ff1660ff16815260200190815260200160002060060160008d8152602001908152602001600020600601828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561171e5780601f106116f35761010080835404028352916020019161171e565b820191906000526020600020905b81548152906001019060200180831161170157829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117ba5780601f1061178f576101008083540402835291602001916117ba565b820191906000526020600020905b81548152906001019060200180831161179d57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b505050505090509550955095509550955095509295509295509295565b60008160018160ff161015801561188e575060648160ff1611155b151561189957600080fd5b60055460001960ff85160190606490040260055403915050919050565b6118be611f3d565b6118c6611f3d565b60025460009081906040518059106118db5750595b9080825280602002602001820160405250925060009150600090505b60025460ff821610156119315780838360ff168151811061191457fe5b60ff909216602092830290910190910152600191820191016118f7565b509092915050565b6000806000806000806000808860018160ff161015801561195e575060648160ff1611155b151561196957600080fd5b60ff808b1660009081526003602052604090205416158061199e575060ff808b16600090815260036020526040902060040154165b156119a857600192505b505060ff978816600090815260036020819052604090912080546001820154600283015493830154600490930154918c169c909b939a50919850929650610100909204169350915050565b60055481565b60ff8116600090815260016020526040812054829033600160a060020a039081166101009092041614611a2b57600080fd5b60ff831660009081526001602081905260409091208054600160a060020a0387166101000274ffffffffffffffffffffffffffffffffffffffff001990911617905591505092915050565b60008060008660018160ff1610158015611a94575060648160ff1611155b1515611a9f57600080fd5b60ff88166000908152600160205260409020546101009004600160a060020a03161515611acb57600080fd5b60ff808916600090815260036020526040902060040154161515611aee57600080fd5b60ff881660009081526003602052604090206001015492503483901015611b1457600080fd5b60ff8816600090815260016020526040902054600854600654600160a060020a0361010090930483169450611b4c9285921690611e6b565b50611b5a8833898989611dbf565b5060ff881660009081526001602081815260408084206004908101805460ff199081169091556003909352932090920180549092169091559350505050949350505050565b600854600160a060020a031681565b60016020819052600091825260409091208054600482015460ff80831694610100909304600160a060020a0316939283019260028101926003909101911686565b611bf7611f3d565b611bff611f3d565b6004546000908190604051805910611c145750595b9080825280602002602001820160405250925060009150600090505b60045460ff821610156119315780838360ff1681518110611c4d57fe5b60ff90921660209283029091019091015260019182019101611c30565b60028054829081106110a257fe5b60008260018160ff1610158015611c93575060648160ff1611155b1515611c9e57600080fd5b60085433600160a060020a03908116911614611cb957600080fd5b60ff84166000908152600160208190526040909120600401805485151560ff1990911617905591505092915050565b60008160018160ff1610158015611d03575060648160ff1611155b1515611d0e57600080fd5b60ff8316600090815260016020526040902054839033600160a060020a039081166101009092041614611d4057600080fd5b50505060ff166000908152600360205260409020600401805460ff19169055600190565b6000806000611d71611f3d565b611d79611f3d565b611d81611f3d565b6000611d8c886110db565b9050611d988882611536565b949d939c50919a509850965090945092505050565b60006020819052908152604090205481565b60ff851660009081526001602081905260408220805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0389160217815501848051611e10929160200190611f88565b5060ff86166000908152600160205260409020600201838051611e37929160200190611f88565b5060ff86166000908152600160205260409020600301828051611e5e929160200190611f88565b5060019695505050505050565b6000806000611e7a3485611f34565b600160a060020a039687166000908152602081905260408082208054348590030190559690971687529490952080549094019093555060019392505050565b60ff82166000818152600360205260408120805460ff1916909217825560018083018490556004928301805461ffff191690558254919291908101611efe8382611f4f565b50600091825260209182902082820401805460ff808816949093066101000a938402929093021990921617905550600192915050565b61271091020490565b60206040519081016040526000815290565b815481835581811511611f8357601f016020900481601f01602090048360005260206000209182019101611f839190612022565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611fc957805160ff1916838001178555611ff6565b82800160010185558215611ff6579182015b82811115611ff6578251825591602001919060010190611fdb565b50611013929150612022565b815481835581811511611f8357600083815260209020611f839181019083015b610f3491905b8082111561101357600081556001016120285600a165627a7a72305820d22e2c5a6fe26a7690d43381d9abda103217960297727efe15350e82933f52a80029
Deployed Bytecode
0x60606040526004361061017f5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166307806b19811461018457806309004eb1146101dc57806312065fe0146103635780631a9e3e18146103885780632cefc4291461039b5780633ccfd60b146103cb57806344fd584d146103de578063459a2192146103f757806373cb062014610423578063771acf311461045257806379081feb146104655780637b65d0ec1461047e5780637db33f99146105505780638014f2381461056f5780638df793d61461064c5780638f6f32751461071e578063a7f58c2414610868578063b0df9e5314610881578063b7b2a009146108e7578063ba0bc2f414610900578063bc2fe07b14610913578063c02d014014610938578063ce606ee014610a0a578063cf4e964a14610a1d578063d5bd57a114610bd7578063d9f035aa14610bea578063e6591f4e14610c00578063ec591b2014610c1e578063f0d8e96814610c37578063f3f4370314610c50575b600080fd5b341561018f57600080fd5b61019d60ff60043516610c6f565b60405160ff9096168652602086019490945260408086019390935260608501919091521515608084015290151560a083015260c0909101905180910390f35b34156101e757600080fd5b6101f560ff60043516610cad565b60405160ff87168152600160a060020a038616602082015281151560a082015260c0604082018181529060608301906080840190840188818151815260200191508051906020019080838360005b8381101561025b578082015183820152602001610243565b50505050905090810190601f1680156102885780820380516001836020036101000a031916815260200191505b50848103835287818151815260200191508051906020019080838360005b838110156102be5780820151838201526020016102a6565b50505050905090810190601f1680156102eb5780820380516001836020036101000a031916815260200191505b50848103825286818151815260200191508051906020019080838360005b83811015610321578082015183820152602001610309565b50505050905090810190601f16801561034e5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b341561036e57600080fd5b610376610f1a565b60405190815260200160405180910390f35b341561039357600080fd5b610376610f37565b34156103a657600080fd5b6103b760ff60043516602435610f3d565b604051901515815260200160405180910390f35b34156103d657600080fd5b6103b7610fc5565b34156103e957600080fd5b6103b760ff60043516611017565b341561040257600080fd5b61040d600435611094565b60405160ff909116815260200160405180910390f35b341561042e57600080fd5b6104366110c6565b604051600160a060020a03909116815260200160405180910390f35b341561045d57600080fd5b6103766110d5565b341561047057600080fd5b61037660ff600435166110db565b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506110f395505050505050565b341561055b57600080fd5b6103b760ff60043516602435604435611205565b341561057a57600080fd5b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506112ff95505050505050565b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061137295505050505050565b341561072957600080fd5b61073a60ff60043516602435611536565b6040518087815260200186600160a060020a0316600160a060020a03168152602001858152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b838110156107a357808201518382015260200161078b565b50505050905090810190601f1680156107d05780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b838110156108065780820151838201526020016107ee565b50505050905090810190601f1680156108335780820380516001836020036101000a031916815260200191505b508481038252858181518152602001915080519060200190808383600083811015610321578082015183820152602001610309565b341561087357600080fd5b61037660ff60043516611873565b341561088c57600080fd5b6108946118b6565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156108d35780820151838201526020016108bb565b505050509050019250505060405180910390f35b34156108f257600080fd5b61019d60ff60043516611939565b341561090b57600080fd5b6103766119f3565b341561091e57600080fd5b6103b7600160a060020a036004351660ff602435166119f9565b6103b76004803560ff169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650611a7695505050505050565b3415610a1557600080fd5b610436611b9f565b3415610a2857600080fd5b610a3660ff60043516611bae565b60405160ff87168152600160a060020a038616602082015281151560a082015260c060408201818152865460026000196101006001841615020190911604918301829052906060830190608084019060e085019089908015610ad95780601f10610aae57610100808354040283529160200191610ad9565b820191906000526020600020905b815481529060010190602001808311610abc57829003601f168201915b5050848103835287546002600019610100600184161502019091160480825260209091019088908015610b4d5780601f10610b2257610100808354040283529160200191610b4d565b820191906000526020600020905b815481529060010190602001808311610b3057829003601f168201915b5050848103825286546002600019610100600184161502019091160480825260209091019087908015610bc15780601f10610b9657610100808354040283529160200191610bc1565b820191906000526020600020905b815481529060010190602001808311610ba457829003601f168201915b5050995050505050505050505060405180910390f35b3415610be257600080fd5b610894611bef565b3415610bf557600080fd5b61040d600435611c6a565b3415610c0b57600080fd5b6103b760ff600435166024351515611c78565b3415610c2957600080fd5b6103b760ff60043516611ce8565b3415610c4257600080fd5b61073a60ff60043516611d64565b3415610c5b57600080fd5b610376600160a060020a0360043516611dad565b60036020819052600091825260409091208054600182015460028301549383015460049093015460ff92831694919391928181169161010090041686565b600080610cb8611f3d565b610cc0611f3d565b610cc8611f3d565b6000808760018160ff1610158015610ce4575060648160ff1611155b1515610cef57600080fd5b60ff898116600090815260016020818152604092839020805481840180549682169e5061010091829004600160a060020a03169d50919750909460029381161590910260001901169190910491601f8301829004820290910190519081016040528092919081815260200182805460018160011615610100020316600290048015610dbb5780601f10610d9057610100808354040283529160200191610dbb565b820191906000526020600020905b815481529060010190602001808311610d9e57829003601f168201915b50505050509550816002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e5a5780601f10610e2f57610100808354040283529160200191610e5a565b820191906000526020600020905b815481529060010190602001808311610e3d57829003601f168201915b50505050509450816003018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ef95780601f10610ece57610100808354040283529160200191610ef9565b820191906000526020600020905b815481529060010190602001808311610edc57829003601f168201915b5050505060049390930154989a9799509597949660ff909516949350505050565b600160a060020a0333166000908152602081905260409020545b90565b60065481565b60008260018160ff1610158015610f58575060648160ff1611155b1515610f6357600080fd5b60ff8416600090815260016020526040902054849033600160a060020a039081166101009092041614610f9557600080fd5b50505060ff919091166000908152600360205260409020600180820192909255600401805460ff19168217905590565b600160a060020a03331660008181526020819052604080822080549083905591929082156108fc0290839051600060405180830381858888f19350505050151561100e57600080fd5b600191505b5090565b60008160018160ff1610158015611032575060648160ff1611155b151561103d57600080fd5b60ff8316600090815260016020526040902054839033600160a060020a03908116610100909204161461106f57600080fd5b50505060ff166000908152600360205260409020600401805461ff0019169055600190565b60048054829081106110a257fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600954600160a060020a031681565b60075481565b60ff1660009081526003602052604090206005015490565b6000808560018160ff161015801561110f575060648160ff1611155b151561111a57600080fd5b61112387611873565b9150348290101561113357600080fd5b60ff87166000908152600160205260409020546101009004600160a060020a03161561115e57600080fd5b61116b8733888888611dbf565b5060ff87166000908152600160205260409020600401805460ff191690556008546009546007546111a992600160a060020a03908116921690611e6b565b506111b48783611eb9565b5060028054600181016111c78382611f4f565b916000526020600020906020918282040191900689909190916101000a81548160ff021916908360ff16021790555050600192505050949350505050565b60008060008560018160ff1610158015611223575060648160ff1611155b151561122e57600080fd5b60ff8716600090815260016020526040902054879033600160a060020a03908116610100909204161461126057600080fd5b60ff808916600090815260036020526040902060040154161561128257600080fd5b61128b886110db565b60ff89166000908152600360208181526040808420858552600601909152909120015490945092504383106112bf57600080fd5b60ff881660009081526003602081905260409091206002810189905560048101805461ff0019166101001790550186905560019450505050509392505050565b60008460018160ff161015801561131a575060648160ff1611155b151561132557600080fd5b60ff8616600090815260016020526040902054869033600160a060020a03908116610100909204161461135757600080fd5b6113648733888888611dbf565b506001979650505050505050565b60008060008060008060008060008c60018160ff1610158015611399575060648160ff1611155b15156113a457600080fd5b60ff808f1660009081526003602052604090206004810154909a5061010090041615156113d057600080fd5b886002015497508860030154965086880295508534101515156113f257600080fd5b6113fb8e6110db565b60ff8f1660009081526001602081905260409091208054600854600654949093019850438b019750909550600160a060020a036101009091048116945061144792859290911690611e6b565b50600085815260068a016020526040902085815560018101805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a031617905560028101879055600381018590556004018d80516114a7929160200190611f88565b50600085815260068a01602052604090206005018c80516114cc929160200190611f88565b5060008581526006808b016020526040909120018b80516114f1929160200190611f88565b5060048901805461ff0019169055600589018054600181016115138382612002565b506000918252602090912001949094555060019c9b505050505050505050505050565b6000806000611543611f3d565b61154b611f3d565b611553611f3d565b600360008960ff1660ff168152602001908152602001600020600601600088815260200190815260200160002060000154600360008a60ff1660ff168152602001908152602001600020600601600089815260200190815260200160002060010160009054906101000a9004600160a060020a0316600360008b60ff1660ff16815260200190815260200160002060060160008a815260200190815260200160002060030154600360008c60ff1660ff16815260200190815260200160002060060160008b8152602001908152602001600020600401600360008d60ff1660ff16815260200190815260200160002060060160008c8152602001908152602001600020600501600360008e60ff1660ff16815260200190815260200160002060060160008d8152602001908152602001600020600601828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561171e5780601f106116f35761010080835404028352916020019161171e565b820191906000526020600020905b81548152906001019060200180831161170157829003601f168201915b50505050509250818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117ba5780601f1061178f576101008083540402835291602001916117ba565b820191906000526020600020905b81548152906001019060200180831161179d57829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118565780601f1061182b57610100808354040283529160200191611856565b820191906000526020600020905b81548152906001019060200180831161183957829003601f168201915b505050505090509550955095509550955095509295509295509295565b60008160018160ff161015801561188e575060648160ff1611155b151561189957600080fd5b60055460001960ff85160190606490040260055403915050919050565b6118be611f3d565b6118c6611f3d565b60025460009081906040518059106118db5750595b9080825280602002602001820160405250925060009150600090505b60025460ff821610156119315780838360ff168151811061191457fe5b60ff909216602092830290910190910152600191820191016118f7565b509092915050565b6000806000806000806000808860018160ff161015801561195e575060648160ff1611155b151561196957600080fd5b60ff808b1660009081526003602052604090205416158061199e575060ff808b16600090815260036020526040902060040154165b156119a857600192505b505060ff978816600090815260036020819052604090912080546001820154600283015493830154600490930154918c169c909b939a50919850929650610100909204169350915050565b60055481565b60ff8116600090815260016020526040812054829033600160a060020a039081166101009092041614611a2b57600080fd5b60ff831660009081526001602081905260409091208054600160a060020a0387166101000274ffffffffffffffffffffffffffffffffffffffff001990911617905591505092915050565b60008060008660018160ff1610158015611a94575060648160ff1611155b1515611a9f57600080fd5b60ff88166000908152600160205260409020546101009004600160a060020a03161515611acb57600080fd5b60ff808916600090815260036020526040902060040154161515611aee57600080fd5b60ff881660009081526003602052604090206001015492503483901015611b1457600080fd5b60ff8816600090815260016020526040902054600854600654600160a060020a0361010090930483169450611b4c9285921690611e6b565b50611b5a8833898989611dbf565b5060ff881660009081526001602081815260408084206004908101805460ff199081169091556003909352932090920180549092169091559350505050949350505050565b600854600160a060020a031681565b60016020819052600091825260409091208054600482015460ff80831694610100909304600160a060020a0316939283019260028101926003909101911686565b611bf7611f3d565b611bff611f3d565b6004546000908190604051805910611c145750595b9080825280602002602001820160405250925060009150600090505b60045460ff821610156119315780838360ff1681518110611c4d57fe5b60ff90921660209283029091019091015260019182019101611c30565b60028054829081106110a257fe5b60008260018160ff1610158015611c93575060648160ff1611155b1515611c9e57600080fd5b60085433600160a060020a03908116911614611cb957600080fd5b60ff84166000908152600160208190526040909120600401805485151560ff1990911617905591505092915050565b60008160018160ff1610158015611d03575060648160ff1611155b1515611d0e57600080fd5b60ff8316600090815260016020526040902054839033600160a060020a039081166101009092041614611d4057600080fd5b50505060ff166000908152600360205260409020600401805460ff19169055600190565b6000806000611d71611f3d565b611d79611f3d565b611d81611f3d565b6000611d8c886110db565b9050611d988882611536565b949d939c50919a509850965090945092505050565b60006020819052908152604090205481565b60ff851660009081526001602081905260408220805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0389160217815501848051611e10929160200190611f88565b5060ff86166000908152600160205260409020600201838051611e37929160200190611f88565b5060ff86166000908152600160205260409020600301828051611e5e929160200190611f88565b5060019695505050505050565b6000806000611e7a3485611f34565b600160a060020a039687166000908152602081905260408082208054348590030190559690971687529490952080549094019093555060019392505050565b60ff82166000818152600360205260408120805460ff1916909217825560018083018490556004928301805461ffff191690558254919291908101611efe8382611f4f565b50600091825260209182902082820401805460ff808816949093066101000a938402929093021990921617905550600192915050565b61271091020490565b60206040519081016040526000815290565b815481835581811511611f8357601f016020900481601f01602090048360005260206000209182019101611f839190612022565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611fc957805160ff1916838001178555611ff6565b82800160010185558215611ff6579182015b82811115611ff6578251825591602001919060010190611fdb565b50611013929150612022565b815481835581811511611f8357600083815260209020611f839181019083015b610f3491905b8082111561101357600081556001016120285600a165627a7a72305820d22e2c5a6fe26a7690d43381d9abda103217960297727efe15350e82933f52a80029
Swarm Source
bzzr://d22e2c5a6fe26a7690d43381d9abda103217960297727efe15350e82933f52a8
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 24 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,577.93 | 0.0623 | $222.9 |
[ 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.