More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 26,768 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Place Sell Order | 12714307 | 1284 days ago | IN | 0 ETH | 0.00010946 | ||||
Place Sell Order | 7496858 | 2099 days ago | IN | 0 ETH | 0.00009716 | ||||
Place Sell Order | 6947720 | 2199 days ago | IN | 0 ETH | 0.00002429 | ||||
Withdraw Ether | 6468192 | 2278 days ago | IN | 0 ETH | 0.00042108 | ||||
Place Sell Order | 6463618 | 2279 days ago | IN | 0 ETH | 0.00004858 | ||||
Place Sell Order | 6461497 | 2279 days ago | IN | 0 ETH | 0.00002671 | ||||
Place Sell Order | 6460861 | 2279 days ago | IN | 0 ETH | 0.00007772 | ||||
Get Back Lending... | 6460545 | 2279 days ago | IN | 0 ETH | 0.00000229 | ||||
Buy Item | 6460370 | 2279 days ago | IN | 0.006 ETH | 0.0000239 | ||||
Place Sell Order | 6460362 | 2279 days ago | IN | 0 ETH | 0.00000242 | ||||
Place Sell Order | 6460106 | 2279 days ago | IN | 0 ETH | 0.00009716 | ||||
Place Sell Order | 6460058 | 2279 days ago | IN | 0 ETH | 0.0000969 | ||||
Place Sell Order | 6460058 | 2279 days ago | IN | 0 ETH | 0.0000969 | ||||
Place Sell Order | 6460058 | 2279 days ago | IN | 0 ETH | 0.00012113 | ||||
Place Sell Order | 6460058 | 2279 days ago | IN | 0 ETH | 0.0000969 | ||||
Place Sell Order | 6460056 | 2279 days ago | IN | 0 ETH | 0.0000969 | ||||
Place Sell Order | 6460051 | 2279 days ago | IN | 0 ETH | 0.00009716 | ||||
Place Sell Order | 6460040 | 2279 days ago | IN | 0 ETH | 0.00009716 | ||||
Place Sell Order | 6459589 | 2279 days ago | IN | 0 ETH | 0.00002422 | ||||
Place Sell Order | 6459360 | 2279 days ago | IN | 0 ETH | 0.00002429 | ||||
Borrow Item | 6458620 | 2280 days ago | IN | 0.0001 ETH | 0.00002389 | ||||
Borrow Item | 6458218 | 2280 days ago | IN | 0.0001 ETH | 0.00002389 | ||||
Remove Sell Orde... | 6382270 | 2292 days ago | IN | 0 ETH | 0.00007156 | ||||
Place Sell Order | 6365445 | 2295 days ago | IN | 0 ETH | 0.00002422 | ||||
Offer Borrowing ... | 6351200 | 2297 days ago | IN | 0 ETH | 0.00002385 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
6468192 | 2278 days ago | 0.4926394 ETH | ||||
6238039 | 2316 days ago | 0.08415 ETH | ||||
6238019 | 2316 days ago | 0.07821 ETH | ||||
6238015 | 2316 days ago | 0.04455 ETH | ||||
6236814 | 2316 days ago | 0.07425 ETH | ||||
6236814 | 2316 days ago | 0.07425 ETH | ||||
6236595 | 2316 days ago | 0.06831 ETH | ||||
6235578 | 2317 days ago | 0.06831 ETH | ||||
6235120 | 2317 days ago | 0.07722 ETH | ||||
6235115 | 2317 days ago | 0.03861 ETH | ||||
6233627 | 2317 days ago | 0.061875 ETH | ||||
6233611 | 2317 days ago | 0.060885 ETH | ||||
6233603 | 2317 days ago | 0.068211 ETH | ||||
6233602 | 2317 days ago | 0.07425 ETH | ||||
6233599 | 2317 days ago | 0.07425 ETH | ||||
6233599 | 2317 days ago | 0.06336 ETH | ||||
6233592 | 2317 days ago | 0.0792 ETH | ||||
6233235 | 2317 days ago | 0.04851 ETH | ||||
6233231 | 2317 days ago | 0.05445 ETH | ||||
6233227 | 2317 days ago | 0.04455 ETH | ||||
6233003 | 2317 days ago | 0.06435 ETH | ||||
6232863 | 2317 days ago | 0.06534 ETH | ||||
6232057 | 2317 days ago | 0.00198 ETH | ||||
6231429 | 2317 days ago | 0.06831 ETH | ||||
6231414 | 2317 days ago | 0.08415 ETH |
Loading...
Loading
Contract Name:
EtheremonTrade
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-01-21 */ pragma solidity ^0.4.16; // copyright [email protected] contract SafeMath { /* function assert(bool assertion) internal { */ /* if (!assertion) { */ /* throw; */ /* } */ /* } // assert no longer needed once solidity is on 0.4.10 */ function safeAdd(uint256 x, uint256 y) pure internal returns(uint256) { uint256 z = x + y; assert((z >= x) && (z >= y)); return z; } function safeSubtract(uint256 x, uint256 y) pure internal returns(uint256) { assert(x >= y); uint256 z = x - y; return z; } function safeMult(uint256 x, uint256 y) pure internal returns(uint256) { uint256 z = x * y; assert((x == 0)||(z/x == y)); return z; } } contract BasicAccessControl { address public owner; // address[] public moderators; uint16 public totalModerators = 0; mapping (address => bool) public moderators; bool public isMaintaining = true; function BasicAccessControl() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyModerators() { require(msg.sender == owner || moderators[msg.sender] == true); _; } modifier isActive { require(!isMaintaining); _; } function ChangeOwner(address _newOwner) onlyOwner public { if (_newOwner != address(0)) { owner = _newOwner; } } function AddModerator(address _newModerator) onlyOwner public { if (moderators[_newModerator] == false) { moderators[_newModerator] = true; totalModerators += 1; } } function RemoveModerator(address _oldModerator) onlyOwner public { if (moderators[_oldModerator] == true) { moderators[_oldModerator] = false; totalModerators -= 1; } } function UpdateMaintaining(bool _isMaintaining) onlyOwner public { isMaintaining = _isMaintaining; } } contract EtheremonEnum { enum ResultCode { SUCCESS, ERROR_CLASS_NOT_FOUND, ERROR_LOW_BALANCE, ERROR_SEND_FAIL, ERROR_NOT_TRAINER, ERROR_NOT_ENOUGH_MONEY, ERROR_INVALID_AMOUNT, ERROR_OBJ_NOT_FOUND, ERROR_OBJ_INVALID_OWNERSHIP } enum ArrayType { CLASS_TYPE, STAT_STEP, STAT_START, STAT_BASE, OBJ_SKILL } } contract EtheremonDataBase is EtheremonEnum, BasicAccessControl, SafeMath { uint64 public totalMonster; uint32 public totalClass; // write function addElementToArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint); function removeElementOfArrayType(ArrayType _type, uint64 _id, uint8 _value) onlyModerators public returns(uint); function setMonsterClass(uint32 _classId, uint256 _price, uint256 _returnPrice, bool _catchable) onlyModerators public returns(uint32); function addMonsterObj(uint32 _classId, address _trainer, string _name) onlyModerators public returns(uint64); function setMonsterObj(uint64 _objId, string _name, uint32 _exp, uint32 _createIndex, uint32 _lastClaimIndex) onlyModerators public; function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public; function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public; function removeMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public; function addMonsterIdMapping(address _trainer, uint64 _monsterId) onlyModerators public; function clearMonsterReturnBalance(uint64 _monsterId) onlyModerators public returns(uint256 amount); function collectAllReturnBalance(address _trainer) onlyModerators public returns(uint256 amount); function transferMonster(address _from, address _to, uint64 _monsterId) onlyModerators public returns(ResultCode); function addExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256); function deductExtraBalance(address _trainer, uint256 _amount) onlyModerators public returns(uint256); function setExtraBalance(address _trainer, uint256 _amount) onlyModerators public; // read function getSizeArrayType(ArrayType _type, uint64 _id) constant public returns(uint); function getElementInArrayType(ArrayType _type, uint64 _id, uint _index) constant public returns(uint8); function getMonsterClass(uint32 _classId) constant public returns(uint32 classId, uint256 price, uint256 returnPrice, uint32 total, bool catchable); function getMonsterObj(uint64 _objId) constant public returns(uint64 objId, uint32 classId, address trainer, uint32 exp, uint32 createIndex, uint32 lastClaimIndex, uint createTime); function getMonsterName(uint64 _objId) constant public returns(string name); function getExtraBalance(address _trainer) constant public returns(uint256); function getMonsterDexSize(address _trainer) constant public returns(uint); function getMonsterObjId(address _trainer, uint index) constant public returns(uint64); function getExpectedBalance(address _trainer) constant public returns(uint256); function getMonsterReturn(uint64 _objId) constant public returns(uint256 current, uint256 total); } interface EtheremonBattleInterface { function isOnBattle(uint64 _objId) constant external returns(bool) ; function getMonsterCP(uint64 _objId) constant external returns(uint64); } contract EtheremonTrade is EtheremonEnum, BasicAccessControl, SafeMath { uint8 constant public GEN0_NO = 24; struct MonsterClassAcc { uint32 classId; uint256 price; uint256 returnPrice; uint32 total; bool catchable; } struct MonsterObjAcc { uint64 monsterId; uint32 classId; address trainer; string name; uint32 exp; uint32 createIndex; uint32 lastClaimIndex; uint createTime; } // Gen0 has return price & no longer can be caught when this contract is deployed struct Gen0Config { uint32 classId; uint256 originalPrice; uint256 returnPrice; uint32 total; // total caught (not count those from eggs) } struct BorrowItem { uint index; address owner; address borrower; uint256 price; bool lent; uint releaseTime; } struct SellingItem { uint index; uint256 price; } struct SoldItem { uint64 objId; uint256 price; uint time; } // data contract address public dataContract; address public battleContract; mapping(uint32 => Gen0Config) public gen0Config; // for selling mapping(uint64 => SellingItem) public sellingDict; uint32 public totalSellingItem; uint64[] public sellingList; // for borrowing mapping(uint64 => BorrowItem) public borrowingDict; uint32 public totalBorrowingItem; uint64[] public borrowingList; mapping(address => uint64[]) public lendingList; mapping(address => SoldItem[]) public soldList; // trading fee uint16 public tradingFeePercentage = 1; uint8 public maxLendingItem = 10; modifier requireDataContract { require(dataContract != address(0)); _; } modifier requireBattleContract { require(battleContract != address(0)); _; } // event event EventPlaceSellOrder(address indexed seller, uint64 objId); event EventBuyItem(address indexed buyer, uint64 objId); event EventOfferBorrowingItem(address indexed lender, uint64 objId); event EventAcceptBorrowItem(address indexed borrower, uint64 objId); event EventGetBackItem(address indexed owner, uint64 objId); event EventFreeTransferItem(address indexed sender, address indexed receiver, uint64 objId); event EventRelease(address indexed trainer, uint64 objId); // constructor function EtheremonTrade(address _dataContract, address _battleContract) public { dataContract = _dataContract; battleContract = _battleContract; } // admin & moderators function setOriginalPriceGen0() onlyModerators public { gen0Config[1] = Gen0Config(1, 0.3 ether, 0.003 ether, 374); gen0Config[2] = Gen0Config(2, 0.3 ether, 0.003 ether, 408); gen0Config[3] = Gen0Config(3, 0.3 ether, 0.003 ether, 373); gen0Config[4] = Gen0Config(4, 0.2 ether, 0.002 ether, 437); gen0Config[5] = Gen0Config(5, 0.1 ether, 0.001 ether, 497); gen0Config[6] = Gen0Config(6, 0.3 ether, 0.003 ether, 380); gen0Config[7] = Gen0Config(7, 0.2 ether, 0.002 ether, 345); gen0Config[8] = Gen0Config(8, 0.1 ether, 0.001 ether, 518); gen0Config[9] = Gen0Config(9, 0.1 ether, 0.001 ether, 447); gen0Config[10] = Gen0Config(10, 0.2 ether, 0.002 ether, 380); gen0Config[11] = Gen0Config(11, 0.2 ether, 0.002 ether, 354); gen0Config[12] = Gen0Config(12, 0.2 ether, 0.002 ether, 346); gen0Config[13] = Gen0Config(13, 0.2 ether, 0.002 ether, 351); gen0Config[14] = Gen0Config(14, 0.2 ether, 0.002 ether, 338); gen0Config[15] = Gen0Config(15, 0.2 ether, 0.002 ether, 341); gen0Config[16] = Gen0Config(16, 0.35 ether, 0.0035 ether, 384); gen0Config[17] = Gen0Config(17, 1 ether, 0.01 ether, 305); gen0Config[18] = Gen0Config(18, 0.1 ether, 0.001 ether, 427); gen0Config[19] = Gen0Config(19, 1 ether, 0.01 ether, 304); gen0Config[20] = Gen0Config(20, 0.4 ether, 0.05 ether, 82); gen0Config[21] = Gen0Config(21, 1, 1, 123); gen0Config[22] = Gen0Config(22, 0.2 ether, 0.001 ether, 468); gen0Config[23] = Gen0Config(23, 0.5 ether, 0.0025 ether, 302); gen0Config[24] = Gen0Config(24, 1 ether, 0.005 ether, 195); } function setContract(address _dataContract, address _battleContract) onlyModerators public { dataContract = _dataContract; battleContract = _battleContract; } function updateConfig(uint16 _fee, uint8 _maxLendingItem) onlyModerators public { tradingFeePercentage = _fee; maxLendingItem = _maxLendingItem; } function withdrawEther(address _sendTo, uint _amount) onlyModerators public { // no user money is kept in this contract, only trasaction fee if (_amount > this.balance) { revert(); } _sendTo.transfer(_amount); } // helper function removeSellingItem(uint64 _itemId) private { SellingItem storage item = sellingDict[_itemId]; if (item.index == 0) return; if (item.index <= sellingList.length) { // Move an existing element into the vacated key slot. sellingDict[sellingList[sellingList.length-1]].index = item.index; sellingList[item.index-1] = sellingList[sellingList.length-1]; sellingList.length -= 1; delete sellingDict[_itemId]; } } function addSellingItem(uint64 _itemId, uint256 _price) private { SellingItem storage item = sellingDict[_itemId]; item.price = _price; if (item.index == 0) { item.index = ++sellingList.length; sellingList[item.index - 1] = _itemId; } } function removeBorrowingItem(uint64 _itemId) private { BorrowItem storage item = borrowingDict[_itemId]; if (item.index == 0) return; if (item.index <= borrowingList.length) { // Move an existing element into the vacated key slot. borrowingDict[borrowingList[borrowingList.length-1]].index = item.index; borrowingList[item.index-1] = borrowingList[borrowingList.length-1]; borrowingList.length -= 1; delete borrowingDict[_itemId]; } } function addBorrowingItem(address _owner, uint64 _itemId, uint256 _price, uint _releaseTime) private { BorrowItem storage item = borrowingDict[_itemId]; item.owner = _owner; item.borrower = address(0); item.price = _price; item.lent = false; item.releaseTime = _releaseTime; if (item.index == 0) { item.index = ++borrowingList.length; borrowingList[item.index - 1] = _itemId; } } function transferMonster(address _to, uint64 _objId) private { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId); // clear balance for gen 0 if (obj.classId <= GEN0_NO) { Gen0Config storage gen0 = gen0Config[obj.classId]; if (gen0.classId == obj.classId) { if (obj.lastClaimIndex < gen0.total) { uint32 gap = uint32(safeSubtract(gen0.total, obj.lastClaimIndex)); if (gap > 0) { data.addExtraBalance(obj.trainer, safeMult(gap, gen0.returnPrice)); // reset total (accept name is cleared :( ) data.setMonsterObj(obj.monsterId, " name me ", obj.exp, obj.createIndex, gen0.total); } } } } // transfer owner data.removeMonsterIdMapping(obj.trainer, _objId); data.addMonsterIdMapping(_to, _objId); } function addItemLendingList(address _trainer, uint64 _objId) private { if (_trainer != address(0)) { uint64[] storage objList = lendingList[_trainer]; for (uint index = 0; index < objList.length; index++) { if (objList[index] == _objId) { return; } } objList.push(_objId); } } function removeItemLendingList(address _trainer, uint64 _objId) private { uint foundIndex = 0; uint64[] storage objList = lendingList[_trainer]; for (; foundIndex < objList.length; foundIndex++) { if (objList[foundIndex] == _objId) { break; } } if (foundIndex < objList.length) { objList[foundIndex] = objList[objList.length-1]; delete objList[objList.length-1]; objList.length--; } } // public function placeSellOrder(uint64 _objId, uint256 _price) requireDataContract requireBattleContract isActive external { if (_price == 0) revert(); // not on borrowing BorrowItem storage item = borrowingDict[_objId]; if (item.index > 0) revert(); // not on battle EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); if (battle.isOnBattle(_objId)) revert(); // check ownership EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; uint32 _ = 0; (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId); if (obj.monsterId != _objId) { revert(); } if (obj.trainer != msg.sender) { revert(); } // on selling, then just update price if (sellingDict[_objId].index > 0){ sellingDict[_objId].price = _price; } else { addSellingItem(_objId, _price); } EventPlaceSellOrder(msg.sender, _objId); } function removeSellOrder(uint64 _objId) requireDataContract requireBattleContract isActive external { if (sellingDict[_objId].index == 0) revert(); // check ownership EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; uint32 _ = 0; (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId); if (obj.monsterId != _objId) { revert(); } if (obj.trainer != msg.sender) { revert(); } removeSellingItem(_objId); } function buyItem(uint64 _objId) requireDataContract requireBattleContract isActive external payable { // check item is valid to sell uint256 requestPrice = sellingDict[_objId].price; if (requestPrice == 0 || msg.value != requestPrice) { revert(); } // check obj EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; uint32 _ = 0; (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId); if (obj.monsterId != _objId) { revert(); } // can not buy from yourself if (obj.trainer == msg.sender) { revert(); } address oldTrainer = obj.trainer; uint256 fee = requestPrice * tradingFeePercentage / 100; removeSellingItem(_objId); transferMonster(msg.sender, _objId); oldTrainer.transfer(safeSubtract(requestPrice, fee)); SoldItem memory soldItem = SoldItem(_objId, requestPrice, block.timestamp); soldList[oldTrainer].push(soldItem); EventBuyItem(msg.sender, _objId); } function offerBorrowingItem(uint64 _objId, uint256 _price, uint _releaseTime) requireDataContract requireBattleContract isActive external { // make sure it is not on sale if (sellingDict[_objId].price > 0 || _price == 0) revert(); // not on lent BorrowItem storage item = borrowingDict[_objId]; if (item.lent == true) revert(); // not on battle EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); if (battle.isOnBattle(_objId)) revert(); // check ownership EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; uint32 _ = 0; (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId); if (obj.monsterId != _objId) { revert(); } if (obj.trainer != msg.sender) { revert(); } if (item.index > 0) { // update info item.price = _price; item.releaseTime = _releaseTime; } else { addBorrowingItem(msg.sender, _objId, _price, _releaseTime); } EventOfferBorrowingItem(msg.sender, _objId); } function removeBorrowingOfferItem(uint64 _objId) requireDataContract requireBattleContract isActive external { BorrowItem storage item = borrowingDict[_objId]; if (item.index == 0) revert(); if (item.owner != msg.sender) revert(); if (item.lent == true) revert(); removeBorrowingItem(_objId); } function borrowItem(uint64 _objId) requireDataContract requireBattleContract isActive external payable { BorrowItem storage item = borrowingDict[_objId]; if (item.index == 0) revert(); if (item.lent == true) revert(); uint256 itemPrice = item.price; if (itemPrice != msg.value) revert(); // check obj EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; uint32 _ = 0; (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId); if (obj.monsterId != _objId) { revert(); } // can not borrow from yourself if (obj.trainer == msg.sender) { revert(); } uint256 fee = itemPrice * tradingFeePercentage / 100; item.borrower = msg.sender; item.releaseTime += block.timestamp; item.lent = true; address oldOwner = obj.trainer; transferMonster(msg.sender, _objId); oldOwner.transfer(safeSubtract(itemPrice, fee)); addItemLendingList(oldOwner, _objId); EventAcceptBorrowItem(msg.sender, _objId); } function getBackLendingItem(uint64 _objId) requireDataContract requireBattleContract isActive external { BorrowItem storage item = borrowingDict[_objId]; if (item.index == 0) revert(); if (item.lent == false) revert(); if (item.releaseTime > block.timestamp) revert(); if (msg.sender != item.owner) revert(); removeBorrowingItem(_objId); transferMonster(msg.sender, _objId); removeItemLendingList(msg.sender, _objId); EventGetBackItem(msg.sender, _objId); } function freeTransferItem(uint64 _objId, address _receiver) requireDataContract requireBattleContract external { // make sure it is not on sale if (sellingDict[_objId].price > 0) revert(); // not on borrowing BorrowItem storage item = borrowingDict[_objId]; if (item.index > 0) revert(); // not on battle EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); if (battle.isOnBattle(_objId)) revert(); // check ownership EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; uint32 _ = 0; (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId); if (obj.monsterId != _objId) { revert(); } if (obj.trainer != msg.sender) { revert(); } transferMonster(_receiver, _objId); EventFreeTransferItem(msg.sender, _receiver, _objId); } function release(uint64 _objId) requireDataContract requireBattleContract external { // make sure it is not on sale if (sellingDict[_objId].price > 0) revert(); // not on borrowing BorrowItem storage item = borrowingDict[_objId]; if (item.index > 0) revert(); // not on battle EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); if (battle.isOnBattle(_objId)) revert(); // check ownership EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; uint32 _ = 0; (obj.monsterId, obj.classId, obj.trainer, obj.exp, _, _, obj.createTime) = data.getMonsterObj(_objId); // can not release gen 0 if (obj.classId <= GEN0_NO) { revert(); } if (obj.monsterId != _objId) { revert(); } if (obj.trainer != msg.sender) { revert(); } data.removeMonsterIdMapping(msg.sender, _objId); EventRelease(msg.sender, _objId); } // read access function getBasicObjInfo(uint64 _objId) constant public returns(uint32, address, uint32, uint32){ EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId); return (obj.classId, obj.trainer, obj.exp, obj.createIndex); } function getBasicObjInfoWithBp(uint64 _objId) constant public returns(uint32, uint32, uint32, uint64) { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, obj.classId, obj.trainer, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId); EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); uint64 bp = battle.getMonsterCP(_objId); return (obj.classId, obj.exp, obj.createIndex, bp); } function getTotalSellingItem() constant external returns(uint) { return sellingList.length; } function getSellingItem(uint _index) constant external returns(uint64 objId, uint32 classId, uint32 exp, uint64 bp, address trainer, uint createIndex, uint256 price) { objId = sellingList[_index]; if (objId > 0) { (classId, trainer, exp, createIndex) = getBasicObjInfo(objId); EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); bp = battle.getMonsterCP(objId); price = sellingDict[objId].price; } } function getSellingItemByObjId(uint64 _objId) constant external returns(uint32 classId, uint32 exp, uint64 bp, address trainer, uint createIndex, uint256 price) { price = sellingDict[_objId].price; if (price > 0) { (classId, trainer, exp, createIndex) = getBasicObjInfo(_objId); EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); bp = battle.getMonsterCP(_objId); } } function getTotalBorrowingItem() constant external returns(uint) { return borrowingList.length; } function getBorrowingItem(uint _index) constant external returns(uint64 objId, address owner, address borrower, uint256 price, bool lent, uint releaseTime, uint32 classId, uint32 exp, uint32 createIndex, uint64 bp) { objId = borrowingList[_index]; BorrowItem storage item = borrowingDict[objId]; owner = item.owner; borrower = item.borrower; price = item.price; lent = item.lent; releaseTime = item.releaseTime; (classId, exp, createIndex, bp) = getBasicObjInfoWithBp(objId); } function getBorrowingItemByObjId(uint64 _objId) constant external returns(uint index, address owner, address borrower, uint256 price, bool lent, uint releaseTime, uint32 classId, uint32 exp, uint32 createIndex, uint64 bp) { BorrowItem storage item = borrowingDict[_objId]; index = item.index; owner = item.owner; borrower = item.borrower; price = item.price; lent = item.lent; releaseTime = item.releaseTime; (classId, exp, createIndex, bp) = getBasicObjInfoWithBp(_objId); } function getSoldItemLength(address _trainer) constant external returns(uint) { return soldList[_trainer].length; } function getSoldItem(address _trainer, uint _index) constant external returns(uint64 objId, uint32 classId, uint32 exp, uint64 bp, address currentOwner, uint createIndex, uint256 price, uint time) { if (_index > soldList[_trainer].length) return; SoldItem memory soldItem = soldList[_trainer][_index]; objId = soldItem.objId; price = soldItem.price; time = soldItem.time; if (objId > 0) { (classId, currentOwner, exp, createIndex) = getBasicObjInfo(objId); EtheremonBattleInterface battle = EtheremonBattleInterface(battleContract); bp = battle.getMonsterCP(objId); } } function getLendingItemLength(address _trainer) constant external returns(uint) { return lendingList[_trainer].length; } function getLendingItemInfo(address _trainer, uint _index) constant external returns(uint64 objId, address owner, address borrower, uint256 price, bool lent, uint releaseTime, uint32 classId, uint32 exp, uint32 createIndex, uint64 bp) { if (_index > lendingList[_trainer].length) return; objId = lendingList[_trainer][_index]; BorrowItem storage item = borrowingDict[objId]; owner = item.owner; borrower = item.borrower; price = item.price; lent = item.lent; releaseTime = item.releaseTime; (classId, exp, createIndex, bp) = getBasicObjInfoWithBp(objId); } function getTradingInfo(uint64 _objId) constant external returns(uint256 sellingPrice, uint256 lendingPrice, bool lent, uint releaseTime) { sellingPrice = sellingDict[_objId].price; BorrowItem storage item = borrowingDict[_objId]; lendingPrice = item.price; lent = item.lent; releaseTime = item.releaseTime; } function isOnTrading(uint64 _objId) constant external returns(bool) { return (sellingDict[_objId].price > 0 || borrowingDict[_objId].owner != address(0)); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"getTotalBorrowingItem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getTradingInfo","outputs":[{"name":"sellingPrice","type":"uint256"},{"name":"lendingPrice","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_receiver","type":"address"}],"name":"freeTransferItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint64"}],"name":"sellingDict","outputs":[{"name":"index","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dataContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"gen0Config","outputs":[{"name":"classId","type":"uint32"},{"name":"originalPrice","type":"uint256"},{"name":"returnPrice","type":"uint256"},{"name":"total","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getSellingItemByObjId","outputs":[{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"bp","type":"uint64"},{"name":"trainer","type":"address"},{"name":"createIndex","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"moderators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxLendingItem","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"}],"name":"setContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_price","type":"uint256"},{"name":"_releaseTime","type":"uint256"}],"name":"offerBorrowingItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getSoldItemLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"battleContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"},{"name":"_index","type":"uint256"}],"name":"getSoldItem","outputs":[{"name":"objId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"bp","type":"uint64"},{"name":"currentOwner","type":"address"},{"name":"createIndex","type":"uint256"},{"name":"price","type":"uint256"},{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getBackLendingItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getBorrowingItemByObjId","outputs":[{"name":"index","type":"uint256"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"bp","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalBorrowingItem","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint64"}],"name":"borrowingDict","outputs":[{"name":"index","type":"uint256"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getBasicObjInfo","outputs":[{"name":"","type":"uint32"},{"name":"","type":"address"},{"name":"","type":"uint32"},{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"removeBorrowingOfferItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTotalSellingItem","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setOriginalPriceGen0","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint16"},{"name":"_maxLendingItem","type":"uint8"}],"name":"updateConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GEN0_NO","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getBasicObjInfoWithBp","outputs":[{"name":"","type":"uint32"},{"name":"","type":"uint32"},{"name":"","type":"uint32"},{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"getSellingItem","outputs":[{"name":"objId","type":"uint64"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"bp","type":"uint64"},{"name":"trainer","type":"address"},{"name":"createIndex","type":"uint256"},{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"sellingList","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"isOnTrading","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"},{"name":"_index","type":"uint256"}],"name":"getLendingItemInfo","outputs":[{"name":"objId","type":"uint64"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"bp","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tradingFeePercentage","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"borrowingList","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"soldList","outputs":[{"name":"objId","type":"uint64"},{"name":"price","type":"uint256"},{"name":"time","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_price","type":"uint256"}],"name":"placeSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_trainer","type":"address"}],"name":"getLendingItemLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"buyItem","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalSellingItem","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"removeSellOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lendingList","outputs":[{"name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"}],"name":"borrowItem","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"isMaintaining","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"getBorrowingItem","outputs":[{"name":"objId","type":"uint64"},{"name":"owner","type":"address"},{"name":"borrower","type":"address"},{"name":"price","type":"uint256"},{"name":"lent","type":"bool"},{"name":"releaseTime","type":"uint256"},{"name":"classId","type":"uint32"},{"name":"exp","type":"uint32"},{"name":"createIndex","type":"uint32"},{"name":"bp","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_dataContract","type":"address"},{"name":"_battleContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"seller","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventPlaceSellOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventBuyItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"lender","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventOfferBorrowingItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"borrower","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventAcceptBorrowItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventGetBackItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"receiver","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventFreeTransferItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"trainer","type":"address"},{"indexed":false,"name":"objId","type":"uint64"}],"name":"EventRelease","type":"event"}]
Contract Creation Code
60606040526000805460a060020a61ffff02191690556002805460ff19166001908117909155600d805461ffff191690911762ff00001916620a0000179055341561004957600080fd5b604051604080614bd8833981016040528080519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600280549683166101000261010060a860020a03199097169690961790955560038054919092169416939093179092555050614b15806100c36000396000f3006060604052600436106102365763ffffffff60e060020a600035041662203385811461023b57806304150e8f1461026057806306228e95146102ae5780630796f67c146102db5780630d668818146103125780630daf4151146103415780630e5aaffc1461038e57806314d0f1ba1461040257806326a4c847146104355780632bf6e0a51461045e5780633010f03c146104835780633462001b146104a857806341fbbc31146104c7578063423b1ca3146104e657806347ae73ee146104f957806348ef5aa81461057f5780634eb4fe80146105975780634efb023e146105b65780634f99a96e146105e05780634fdf64ce14610675578063517403f5146106a1578063522f681514610705578063554792fd146107275780635e6df25c14610781578063654470fc146107a057806366ba2670146107b35780636c81fd6d146107c657806370187a19146107e557806373d65c001461080557806376c29bf5146108185780638426a452146108725780638da5cb5b146108e4578063999ec0a0146108f7578063a847a71c14610929578063ad4e39f314610948578063b2356ad4146109e3578063b58c87ba146109f6578063b85d627514610a0c578063baaa73b514610a2b578063c2b303d014610a83578063c734375414610aa5578063d6f551e414610ac4578063d7c39cc614610ad8578063e16e0f8414610aeb578063e88dfc6714610b0a578063e9b6d67114610b2c578063ee4e441614610b40578063f285329214610b53578063faa5369d14610b72575b600080fd5b341561024657600080fd5b61024e610b88565b60405190815260200160405180910390f35b341561026b57600080fd5b61027f6001604060020a0360043516610b8f565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34156102b957600080fd5b6102d96001604060020a0360043516600160a060020a0360243516610bd0565b005b34156102e657600080fd5b6102fa6001604060020a0360043516610e5c565b60405191825260208201526040908101905180910390f35b341561031d57600080fd5b610325610e75565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61035d63ffffffff60043516610e89565b60405163ffffffff948516815260208101939093526040808401929092529092166060820152608001905180910390f35b341561039957600080fd5b6103ad6001604060020a0360043516610eb8565b60405163ffffffff96871681529490951660208501526001604060020a03909216604080850191909152600160a060020a039091166060840152608083019190915260a082019290925260c001905180910390f35b341561040d57600080fd5b610421600160a060020a0360043516610f82565b604051901515815260200160405180910390f35b341561044057600080fd5b610448610f97565b60405160ff909116815260200160405180910390f35b341561046957600080fd5b6102d9600160a060020a0360043581169060243516610fa6565b341561048e57600080fd5b6102d96001604060020a036004351660243560443561103e565b34156104b357600080fd5b61024e600160a060020a0360043516611304565b34156104d257600080fd5b6102d96001604060020a036004351661131f565b34156104f157600080fd5b610325611625565b341561050457600080fd5b61051b600160a060020a0360043516602435611634565b6040516001604060020a03988916815263ffffffff978816602082015295909616604080870191909152939096166060850152600160a060020a03909116608084015260a083015260c082019390935260e081019190915261010001905180910390f35b341561058a57600080fd5b6102d96004351515611798565b34156105a257600080fd5b6102d96001604060020a03600435166117c6565b34156105c157600080fd5b6105c96118db565b60405161ffff909116815260200160405180910390f35b34156105eb57600080fd5b6105ff6001604060020a03600435166118fd565b604051998a52600160a060020a0398891660208b0152969097166040808a01919091526060890195909552921515608088015260a087019190915263ffffffff90811660c087015290811660e08601529092166101008401526001604060020a0316610120830152610140909101905180910390f35b341561068057600080fd5b610688611976565b60405163ffffffff909116815260200160405180910390f35b34156106ac57600080fd5b6106c06001604060020a0360043516611982565b604051958652600160a060020a039485166020870152929093166040808601919091526060850191909152911515608084015260a083015260c0909101905180910390f35b341561071057600080fd5b6102d9600160a060020a03600435166024356119c8565b341561073257600080fd5b6107466001604060020a0360043516611a5a565b60405163ffffffff9485168152600160a060020a03909316602084015290831660408084019190915292166060820152608001905180910390f35b341561078c57600080fd5b6102d96001604060020a0360043516611b71565b34156107ab57600080fd5b61024e611c1a565b34156107be57600080fd5b6102d9611c20565b34156107d157600080fd5b6102d9600160a060020a0360043516612cea565b34156107f057600080fd5b6102d961ffff6004351660ff60243516612d94565b341561081057600080fd5b610448612e07565b341561082357600080fd5b6108376001604060020a0360043516612e0c565b60405163ffffffff9485168152928416602084015292166040808301919091526001604060020a039092166060820152608001905180910390f35b341561087d57600080fd5b610888600435612f9d565b6040516001604060020a03978816815263ffffffff968716602082015294909516604080860191909152929095166060840152600160a060020a0316608083015260a082019390935260c081019190915260e001905180910390f35b34156108ef57600080fd5b6103256130b3565b341561090257600080fd5b61090d6004356130c2565b6040516001604060020a03909116815260200160405180910390f35b341561093457600080fd5b6104216001604060020a03600435166130fd565b341561095357600080fd5b61096a600160a060020a0360043516602435613150565b6040516001604060020a039a8b168152600160a060020a03998a166020820152979098166040808901919091526060880196909652931515608087015260a086019290925263ffffffff90811660c086015290811660e08501521661010083015291909216610120830152610140909101905180910390f35b34156109ee57600080fd5b6105c9613286565b3415610a0157600080fd5b61090d600435613290565b3415610a1757600080fd5b6102d9600160a060020a036004351661329e565b3415610a3657600080fd5b610a4d600160a060020a0360043516602435613348565b60405180846001604060020a03166001604060020a03168152602001838152602001828152602001935050505060405180910390f35b3415610a8e57600080fd5b6102d96001604060020a0360043516602435613393565b3415610ab057600080fd5b61024e600160a060020a036004351661364c565b6102d96001604060020a0360043516613667565b3415610ae357600080fd5b610688613959565b3415610af657600080fd5b6102d96001604060020a0360043516613965565b3415610b1557600080fd5b61090d600160a060020a0360043516602435613afd565b6102d96001604060020a0360043516613b48565b3415610b4b57600080fd5b610421613e02565b3415610b5e57600080fd5b6102d9600160a060020a0360043516613e0b565b3415610b7d57600080fd5b61096a600435613e62565b600a545b90565b6001604060020a031660009081526005602081815260408084206001015460089092529092206003810154600482015491909201549293919260ff90911691565b6000806000610bdd6149ba565b6002546000906101009004600160a060020a03161515610bfc57600080fd5b600354600160a060020a03161515610c1357600080fd5b6001604060020a0387166000908152600560205260408120600101541115610c3a57600080fd5b6001604060020a038716600090815260086020526040812080549096501115610c6257600080fd5b600354600160a060020a03169350836335f097f38860006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515610cbe57600080fd5b6102c65a03f11515610ccf57600080fd5b5050506040518051905015610ce357600080fd5b506002546101009004600160a060020a031691506000826307202460888360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515610d4657600080fd5b6102c65a03f11515610d5757600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150871682516001604060020a031614610dd657600080fd5b33600160a060020a03168260400151600160a060020a031614610df857600080fd5b610e028688613f33565b85600160a060020a031633600160a060020a03167fc1a01a90251d073f6f2b5d848f0e5dc2aca9b0a6743ed79946e599ad6d546528896040516001604060020a03909116815260200160405180910390a350505050505050565b6005602052600090815260409020805460019091015482565b6002546101009004600160a060020a031681565b600460205260009081526040902080546001820154600283015460039093015463ffffffff9283169391921684565b6001604060020a03811660009081526005602052604081206001015481908190819081908180821115610f7857610eee88611a5a565b600354939a5090985090955063ffffffff169350600160a060020a0316905080630672859b8960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515610f5b57600080fd5b6102c65a03f11515610f6c57600080fd5b50505060405180519550505b5091939550919395565b60016020526000908152604090205460ff1681565b600d5462010000900460ff1681565b60005433600160a060020a0390811691161480610fe15750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610fec57600080fd5b6002805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03948516021790556003805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b600080600061104b6149ba565b6002546000906101009004600160a060020a0316151561106a57600080fd5b600354600160a060020a0316151561108157600080fd5b60025460ff161561109157600080fd5b6001604060020a03881660009081526005602052604081206001015411806110b7575086155b156110c157600080fd5b6001604060020a0388166000908152600860205260409020600481015490955060ff161515600114156110f357600080fd5b600354600160a060020a03169350836335f097f38960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561114f57600080fd5b6102c65a03f1151561116057600080fd5b505050604051805190501561117457600080fd5b506002546101009004600160a060020a031691506000826307202460898360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b15156111d757600080fd5b6102c65a03f115156111e857600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150881682516001604060020a03161461126757600080fd5b33600160a060020a03168260400151600160a060020a03161461128957600080fd5b845460009011156112a75760038501879055600585018690556112b3565b6112b333898989614300565b33600160a060020a03167fa67dda40b2486d90a85433ceabe8a464671ead8938ef7eb33e11b0fb828f6694896040516001604060020a03909116815260200160405180910390a25050505050505050565b600160a060020a03166000908152600c602052604090205490565b600080600061132c6149ba565b6002546000906101009004600160a060020a0316151561134b57600080fd5b600354600160a060020a0316151561136257600080fd5b6001604060020a038616600090815260056020526040812060010154111561138957600080fd5b6001604060020a0386166000908152600860205260408120805490965011156113b157600080fd5b600354600160a060020a03169350836335f097f38760006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561140d57600080fd5b6102c65a03f1151561141e57600080fd5b505050604051805190501561143257600080fd5b506002546101009004600160a060020a031691506000826307202460878360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b151561149557600080fd5b6102c65a03f115156114a657600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a03909216604087015291909116602085019081526001604060020a03909216845291506018905163ffffffff161161152457600080fd5b6001604060020a03861682516001604060020a03161461154357600080fd5b33600160a060020a03168260400151600160a060020a03161461156557600080fd5b82600160a060020a03166360c6ccb2338860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b15156115c257600080fd5b6102c65a03f115156115d357600080fd5b50505033600160a060020a03167fa19af89a96cde439cbd1ad5d955155f57449dd15808b36397d6684e430825e56876040516001604060020a03909116815260200160405180910390a2505050505050565b600354600160a060020a031681565b600080600080600080600080611648614a06565b600160a060020a038b166000908152600c60205260408120548b111561166d57611789565b600160a060020a038c166000908152600c6020526040902080548c90811061169157fe5b90600052602060002090600302016060604051908101604090815282546001604060020a031682526001830154602083015260029092015491810191909152915081519950816020015193508160400151925060008a6001604060020a03161115611789576116ff8a611a5a565b600354939c50909a5090975063ffffffff169550600160a060020a0316905080630672859b8b60006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561176c57600080fd5b6102c65a03f1151561177d57600080fd5b50505060405180519750505b50509295985092959890939650565b60005433600160a060020a039081169116146117b357600080fd5b6002805460ff1916911515919091179055565b6002546000906101009004600160a060020a031615156117e557600080fd5b600354600160a060020a031615156117fc57600080fd5b60025460ff161561180c57600080fd5b506001604060020a03811660009081526008602052604090208054151561183257600080fd5b600481015460ff16151561184557600080fd5b428160050154111561185657600080fd5b600181015433600160a060020a0390811691161461187357600080fd5b61187c826143db565b6118863383613f33565b611890338361455e565b33600160a060020a03167fa46e3c6c83db41772890d273b010c0afddf1a1e6abce28b37e5d7eb80964f4bd836040516001604060020a03909116815260200160405180910390a25050565b60005474010000000000000000000000000000000000000000900461ffff1681565b6001604060020a03811660009081526008602052604081208054600182015460028301546003840154600485015460058601549496600160a060020a03948516969390941694919360ff9091169281908190819061195a8c612e0c565b9d9f9c9e509a9c999b989a979991989097965090945092505050565b60095463ffffffff1681565b6008602052600090815260409020805460018201546002830154600384015460048501546005909501549394600160a060020a03938416949390921692909160ff169086565b60005433600160a060020a0390811691161480611a035750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611a0e57600080fd5b30600160a060020a031631811115611a2557600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515611a5657600080fd5b5050565b6000806000806000611a6a6149ba565b6002546101009004600160a060020a0316915081630720246088600060405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515611acb57600080fd5b6102c65a03f11515611adc57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a08701529081166080860152600160a060020a03909116604085015216602083019081526001604060020a03909116825251816040015182608001518360a00151955095509550955050509193509193565b6002546000906101009004600160a060020a03161515611b9057600080fd5b600354600160a060020a03161515611ba757600080fd5b60025460ff1615611bb757600080fd5b506001604060020a038116600090815260086020526040902080541515611bdd57600080fd5b600181015433600160a060020a03908116911614611bfa57600080fd5b600481015460ff16151560011415611c1157600080fd5b611a56826143db565b60075490565b60005433600160a060020a0390811691161480611c5b5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611c6657600080fd5b608060405190810160409081526001808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101766060840152600052600490527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe058151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526002808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101986060840152600052600490527f91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a78151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526003808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101756060840152600052600490527f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa08151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260048083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101b56060840152600081905290527f1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600580835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101f16060840152600052600490527f04cde762ef08b6b6c5ded8e8c4c0b3f4e5c9ad7342c88fcc93681b4588b73f058151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526006808352670429d069189e0000602080850191909152660aa87bee5380009284019290925261017c6060840152600052600490527fc59312466997bb42aaaf719ece141047820e6b34531e1670dc1852a453648f0f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260078083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101596060840152600052600490527fbeb3bad75134cb432e5707980e3245c52c5998a1125ee30f2f0dbf3925b1e5518151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600880835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526102066060840152600052600490527f2645749a946633740611cfc8178319f0958659d6922e4bf7e3a08b44789f53a48151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600980835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101bf6060840152600052600490527f4ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b9338151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600a8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261017c6060840152600052600490527f5c6b02db8b672415ffad906d7ccee10bd53dbad7d0b29e2bc0e50c93d5f310938151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600b8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101626060840152600052600490527f0c1469ad586d86b6976c45826d7ae56d76ee516e37a2bccffbe904b74dbae7ea8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600c8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015a6060840152600052600490527f140aabff1a85df08546c9a350c79ae18341bde4a2cef5d2fd460885c0128ce268151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600d8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015f6060840152600052600490527fa5022b2bfd144bf9103d80168549b5df7c72ab60bd51bf71a02a08d844853b4a8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600e8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101526060840152600052600490527feb3e677499e881fe1bdbc344a49c412138038a9f40883b6dc68f713aab4835238151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600f8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101556060840152600052600490527f66b61daf77b854ca6ba000a8d4b340eafcdb71b6583753b4af89fceb54988fff8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260108083526704db732547630000602080850191909152660c6f3b40b6c000928401929092526101806060840152600052600490527f4a597304b2df0a7a7b428b3c24c35ba6373aabebf9972387f5610f74a01b21bd8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526011808352670de0b6b3a7640000602080850191909152662386f26fc10000928401929092526101316060840152600052600490527fac375bcb880242328180c23d4a918023a12a7caf7cf12b8c4074e4a3f39900a08151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601280835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101ab6060840152600052600490527f7f6fa3f34639ea1891363ca773619dbd5f652d7ab50411111dde2f57e3ae13ad8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526013808352670de0b6b3a7640000602080850191909152662386f26fc10000928401929092526101306060840152600052600490527f9bbf2ad10217b6212df1939350a047a69b6887b770020d3fa8c328c0653ee9878151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601480835267058d15e17628000060208085019190915266b1a2bc2ec500009284019290925260526060840152600052600490527ff7deed9399d719bf61dcb1322c056a03a885c275ab093673b0cc182b84bea0618151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260158083526001602080850182905292840152607b6060840152600052600490527f1bb30a1647f6f6723cb3a88838ce0319afabe51263fc466f2f669a7a24ad88c68151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260168083526702c68af0bb14000060208085019190915266038d7ea4c68000928401929092526101d46060840152600052600490527f87e655ef16e4075af30c6a90c2b439f7dcd2d83a606dafadaee10cffaf9181328151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260178083526706f05b59d3b200006020808501919091526608e1bc9bf040009284019290925261012e6060840152600052600490527fff624574ceefb6578b3887a7448cf2ca4d120002f646987b0a9b9ad3f6dc2c108151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526018808352670de0b6b3a76400006020808501919091526611c37937e080009284019290925260c36060840152600052600490527f1ac66383b86984a837d32661c9fdda480194de6e2dbd3891e29fadcb763a62da8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550565b60005433600160a060020a03908116911614612d0557600080fd5b600160a060020a03811660009081526001602052604090205460ff161515612d9157600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b60005433600160a060020a0390811691161480612dcf5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515612dda57600080fd5b600d805460ff909216620100000262ff00001961ffff90941661ffff199093169290921792909216179055565b601881565b6000806000806000612e1c6149ba565b6002546101009004600160a060020a031691506000808363072024608a8360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515612e7f57600080fd5b6102c65a03f11515612e9057600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a03918216604080890191909152921660208701526001604060020a03909216855260035490911692508290630672859b908b90600090516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515612f5f57600080fd5b6102c65a03f11515612f7057600080fd5b5050506040518051915050602083015183608001518460a00151919b909a50909850909650945050505050565b600080600080600080600080600789815481101515612fb857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031697506000886001604060020a031611156130a757612ffe88611a5a565b600354939a5090985090955063ffffffff169350600160a060020a0316905080630672859b8960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561306b57600080fd5b6102c65a03f1151561307c57600080fd5b50505060405180516001604060020a038a166000908152600560205260409020600101549096509250505b50919395979092949650565b600054600160a060020a031681565b60078054829081106130d057fe5b9060005260206000209060049182820401919006600802915054906101000a90046001604060020a031681565b6001604060020a0381166000908152600560205260408120600101548190118061314a57506001604060020a038216600090815260086020526040902060010154600160a060020a031615155b92915050565b6000806000806000806000806000806000600b60008e600160a060020a0316600160a060020a03168152602001908152602001600020805490508c111561319657613276565b600160a060020a038d166000908152600b6020526040902080548d9081106131ba57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169a50600860008c6001604060020a03166001604060020a0316815260200190815260200160002090508060010160009054906101000a9004600160a060020a031699508060020160009054906101000a9004600160a060020a03169850806003015497508060040160009054906101000a900460ff1696508060050154955061326b8b612e0c565b929750909550935091505b509295989b9194979a5092959850565b600d5461ffff1681565b600a8054829081106130d057fe5b60005433600160a060020a039081169116146132b957600080fd5b600160a060020a03811660009081526001602081905260409091205460ff1615151415612d9157600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b600c6020528160005260406000208181548110151561336357fe5b60009182526020909120600390910201805460018201546002909201546001604060020a03909116935090915083565b60008060006133a06149ba565b6002546000906101009004600160a060020a031615156133bf57600080fd5b600354600160a060020a031615156133d657600080fd5b60025460ff16156133e657600080fd5b8515156133f257600080fd5b6001604060020a03871660009081526008602052604081208054909650111561341a57600080fd5b600354600160a060020a03169350836335f097f38860006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561347657600080fd5b6102c65a03f1151561348757600080fd5b505050604051805190501561349b57600080fd5b506002546101009004600160a060020a031691506000826307202460888360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b15156134fe57600080fd5b6102c65a03f1151561350f57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150871682516001604060020a03161461358e57600080fd5b33600160a060020a03168260400151600160a060020a0316146135b057600080fd5b6001604060020a03871660009081526005602052604081205411156135f2576001604060020a03871660009081526005602052604090206001018690556135fc565b6135fc87876146bf565b33600160a060020a03167feb7043a06aaf528eb4562cb77682ccaa8efe8ac7b6759947feaf9f77a16aa10e886040516001604060020a03909116815260200160405180910390a250505050505050565b600160a060020a03166000908152600b602052604090205490565b6000806136726149ba565b600080600061367f614a06565b6002546101009004600160a060020a0316151561369b57600080fd5b600354600160a060020a031615156136b257600080fd5b60025460ff16156136c257600080fd5b6001604060020a03881660009081526005602052604090206001015496508615806136ed5750863414155b156136f757600080fd5b6002546101009004600160a060020a0316955060009350856307202460898660405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b151561375b57600080fd5b6102c65a03f1151561376c57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08d0152505063ffffffff91821660808b0152600160a060020a0390921660408a01529190911660208801526001604060020a0391821687529450881685516001604060020a0316146137eb57600080fd5b33600160a060020a03168560400151600160a060020a0316141561380e57600080fd5b8460400151600d5490935060649061ffff16880204915061382e8861474d565b6138383389613f33565b82600160a060020a03166108fc61384f8985614890565b9081150290604051600060405180830381858888f19350505050151561387457600080fd5b606060405190810160409081526001604060020a038a16825260208083018a90524282840152600160a060020a0386166000908152600c90915220805491925090600181016138c38382614a26565b600092835260209092208391600302018151815467ffffffffffffffff19166001604060020a0391909116178155602082015181600101556040820151816002015550505033600160a060020a03167fbfa4ed7e68cf0c080716886ff4468113df6b425ef79ac4911a1f264202dce424896040516001604060020a03909116815260200160405180910390a25050505050505050565b60065463ffffffff1681565b600061396f6149ba565b6002546000906101009004600160a060020a0316151561398e57600080fd5b600354600160a060020a031615156139a557600080fd5b60025460ff16156139b557600080fd5b6001604060020a03841660009081526005602052604090205415156139d957600080fd5b506002546101009004600160a060020a031691506000826307202460858360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613a3c57600080fd5b6102c65a03f11515613a4d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150841682516001604060020a031614613acc57600080fd5b33600160a060020a03168260400151600160a060020a031614613aee57600080fd5b613af78461474d565b50505050565b600b60205281600052604060002081815481101515613b1857fe5b9060005260206000209060049182820401919006600802915091509054906101000a90046001604060020a031681565b6000806000613b556149ba565b600254600090819081906101009004600160a060020a03161515613b7857600080fd5b600354600160a060020a03161515613b8f57600080fd5b60025460ff1615613b9f57600080fd5b6001604060020a038816600090815260086020526040902080549097501515613bc757600080fd5b600487015460ff16151560011415613bde57600080fd5b60038701549550348614613bf157600080fd5b6002546101009004600160a060020a0316945060009250846307202460898560405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613c5557600080fd5b6102c65a03f11515613c6657600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08c0152505063ffffffff91821660808a0152600160a060020a0390921660408901529190911660208701526001604060020a0391821686529350881684516001604060020a031614613ce557600080fd5b33600160a060020a03168460400151600160a060020a03161415613d0857600080fd5b600d5460649061ffff16870260028901805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03161790556005890180544201905560048901805460ff1916600117905504915060408401519050613d6b3389613f33565b80600160a060020a03166108fc613d828885614890565b9081150290604051600060405180830381858888f193505050501515613da757600080fd5b613db181896148a4565b33600160a060020a03167fec9485c094547f7e3de5ae91993db798d626a05c7561391e1dc7129aec0c0e21896040516001604060020a03909116815260200160405180910390a25050505050505050565b60025460ff1681565b60005433600160a060020a03908116911614613e2657600080fd5b600160a060020a03811615612d915760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000806000806000806000806000806000600a8c815481101515613e8257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169a50600860008c6001604060020a03166001604060020a0316815260200190815260200160002090508060010160009054906101000a9004600160a060020a031699508060020160009054906101000a9004600160a060020a03169850806003015497508060040160009054906101000a900460ff1696508060050154955061195a8b612e0c565b6000613f3d6149ba565b6002546101009004600160a060020a03169150600080836307202460868360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613fa057600080fd5b6102c65a03f11515613fb157600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a03909116604087015216602085019081526001604060020a0390911684526018905163ffffffff16116142125760046000846020015163ffffffff1663ffffffff16815260200190815260200160002091508260200151825463ffffffff9081169116141561421257600382015463ffffffff1660c084015163ffffffff1610156142125760038201546140ab9063ffffffff1660c085015163ffffffff16614890565b905060008163ffffffff1611156142125783600160a060020a03166389b2050b84604001516140e48463ffffffff16866002015461498f565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561413057600080fd5b6102c65a03f1151561414157600080fd5b50505060405180515050600160a060020a0384166332666a31845185608001518660a00151600387015463ffffffff1660405163ffffffff86811660e060020a0282526001604060020a0395909516600482015292841660448401529083166064830152909116608482015260a06024820152600960a48201527f206e616d65206d6520000000000000000000000000000000000000000000000060c482015260e401600060405180830381600087803b15156141fd57600080fd5b6102c65a03f1151561420e57600080fd5b5050505b83600160a060020a03166360c6ccb284604001518760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b151561427357600080fd5b6102c65a03f1151561428457600080fd5b50505083600160a060020a0316639248019e878760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b15156142e457600080fd5b6102c65a03f115156142f557600080fd5b505050505050505050565b6001604060020a0383166000908152600860205260409020600181018054600160a060020a03871673ffffffffffffffffffffffffffffffffffffffff199182161790915560028201805490911690556003810183905560048101805460ff1916905560058101829055805415156143d457600a8054600101906143849082614a52565b808255600a805486926000190190811061439a57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055505b5050505050565b6001604060020a03811660009081526008602052604090208054151561440057611a56565b600a54815411611a56578054600a8054600891600091600019810190811061442457fe5b6000918252602080832060048084049091015492066008026101000a9091046001604060020a03168352820192909252604001902055600a8054600019810190811061446c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316600a60018360000154038154811015156144ab57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055506001600a818180549050039150816144fc9190614a52565b50506001604060020a0316600090815260086020526040812081815560018101805473ffffffffffffffffffffffffffffffffffffffff1990811690915560028201805490911690556003810182905560048101805460ff1916905560050155565b600160a060020a0382166000908152600b602052604081205b80548210156145e057826001604060020a0316818381548110151561459857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166001604060020a031614156145d5576145e0565b600190910190614577565b8054821015613af7578054819060001981019081106145fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316818381548110151561463257fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a0316021790555080600182805490500381548110151561468057fe5b90600052602060002090600491828204019190066008026101000a8154906001604060020a030219169055808054809190600190036143d49190614a52565b6001604060020a038216600090815260056020526040902060018101829055805415156147485760078054600101906146f89082614a52565b8082556007805485926000190190811061470e57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055505b505050565b6001604060020a03811660009081526005602052604090208054151561477257611a56565b600754815411611a5657805460078054600591600091600019810190811061479657fe5b6000918252602080832060048084049091015492066008026101000a9091046001604060020a031683528201929092526040019020556007805460001981019081106147de57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166007600183600001540381548110151561481d57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a03160217905550600160078181805490500391508161486e9190614a52565b50506001604060020a0316600090815260056020526040812081815560010155565b6000808284101561489d57fe5b5050900390565b600080600160a060020a03841615613af7575050600160a060020a0382166000908152600b60205260408120905b815481101561493857826001604060020a031682828154811015156148f357fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166001604060020a0316141561493057613af7565b6001016148d2565b815482906001810161494a8382614a52565b916000526020600020906004918282040191900660080285909190916101000a8154816001604060020a0302191690836001604060020a031602179055505050505050565b60008282028315806149ab57508284828115156149a857fe5b04145b15156149b357fe5b9392505050565b610100604051908101604090815260008083526020830181905290820152606081016149e4614a86565b8152600060208201819052604082018190526060820181905260809091015290565b606060405190810160409081526000808352602083018190529082015290565b815481835581811511614748576003028160030283600052602060002091820191016147489190614a98565b8154818355818115116147485760030160049004816003016004900483600052602060002091820191016147489190614acf565b60206040519081016040526000815290565b610b8c91905b80821115614acb57805467ffffffffffffffff191681556000600182018190556002820155600301614a9e565b5090565b610b8c91905b80821115614acb5760008155600101614ad55600a165627a7a7230582073bb2bd72813d7046e86d3c077137127791d6f12c219717e2b389720d91d31850029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6060604052600436106102365763ffffffff60e060020a600035041662203385811461023b57806304150e8f1461026057806306228e95146102ae5780630796f67c146102db5780630d668818146103125780630daf4151146103415780630e5aaffc1461038e57806314d0f1ba1461040257806326a4c847146104355780632bf6e0a51461045e5780633010f03c146104835780633462001b146104a857806341fbbc31146104c7578063423b1ca3146104e657806347ae73ee146104f957806348ef5aa81461057f5780634eb4fe80146105975780634efb023e146105b65780634f99a96e146105e05780634fdf64ce14610675578063517403f5146106a1578063522f681514610705578063554792fd146107275780635e6df25c14610781578063654470fc146107a057806366ba2670146107b35780636c81fd6d146107c657806370187a19146107e557806373d65c001461080557806376c29bf5146108185780638426a452146108725780638da5cb5b146108e4578063999ec0a0146108f7578063a847a71c14610929578063ad4e39f314610948578063b2356ad4146109e3578063b58c87ba146109f6578063b85d627514610a0c578063baaa73b514610a2b578063c2b303d014610a83578063c734375414610aa5578063d6f551e414610ac4578063d7c39cc614610ad8578063e16e0f8414610aeb578063e88dfc6714610b0a578063e9b6d67114610b2c578063ee4e441614610b40578063f285329214610b53578063faa5369d14610b72575b600080fd5b341561024657600080fd5b61024e610b88565b60405190815260200160405180910390f35b341561026b57600080fd5b61027f6001604060020a0360043516610b8f565b604051808581526020018481526020018315151515815260200182815260200194505050505060405180910390f35b34156102b957600080fd5b6102d96001604060020a0360043516600160a060020a0360243516610bd0565b005b34156102e657600080fd5b6102fa6001604060020a0360043516610e5c565b60405191825260208201526040908101905180910390f35b341561031d57600080fd5b610325610e75565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61035d63ffffffff60043516610e89565b60405163ffffffff948516815260208101939093526040808401929092529092166060820152608001905180910390f35b341561039957600080fd5b6103ad6001604060020a0360043516610eb8565b60405163ffffffff96871681529490951660208501526001604060020a03909216604080850191909152600160a060020a039091166060840152608083019190915260a082019290925260c001905180910390f35b341561040d57600080fd5b610421600160a060020a0360043516610f82565b604051901515815260200160405180910390f35b341561044057600080fd5b610448610f97565b60405160ff909116815260200160405180910390f35b341561046957600080fd5b6102d9600160a060020a0360043581169060243516610fa6565b341561048e57600080fd5b6102d96001604060020a036004351660243560443561103e565b34156104b357600080fd5b61024e600160a060020a0360043516611304565b34156104d257600080fd5b6102d96001604060020a036004351661131f565b34156104f157600080fd5b610325611625565b341561050457600080fd5b61051b600160a060020a0360043516602435611634565b6040516001604060020a03988916815263ffffffff978816602082015295909616604080870191909152939096166060850152600160a060020a03909116608084015260a083015260c082019390935260e081019190915261010001905180910390f35b341561058a57600080fd5b6102d96004351515611798565b34156105a257600080fd5b6102d96001604060020a03600435166117c6565b34156105c157600080fd5b6105c96118db565b60405161ffff909116815260200160405180910390f35b34156105eb57600080fd5b6105ff6001604060020a03600435166118fd565b604051998a52600160a060020a0398891660208b0152969097166040808a01919091526060890195909552921515608088015260a087019190915263ffffffff90811660c087015290811660e08601529092166101008401526001604060020a0316610120830152610140909101905180910390f35b341561068057600080fd5b610688611976565b60405163ffffffff909116815260200160405180910390f35b34156106ac57600080fd5b6106c06001604060020a0360043516611982565b604051958652600160a060020a039485166020870152929093166040808601919091526060850191909152911515608084015260a083015260c0909101905180910390f35b341561071057600080fd5b6102d9600160a060020a03600435166024356119c8565b341561073257600080fd5b6107466001604060020a0360043516611a5a565b60405163ffffffff9485168152600160a060020a03909316602084015290831660408084019190915292166060820152608001905180910390f35b341561078c57600080fd5b6102d96001604060020a0360043516611b71565b34156107ab57600080fd5b61024e611c1a565b34156107be57600080fd5b6102d9611c20565b34156107d157600080fd5b6102d9600160a060020a0360043516612cea565b34156107f057600080fd5b6102d961ffff6004351660ff60243516612d94565b341561081057600080fd5b610448612e07565b341561082357600080fd5b6108376001604060020a0360043516612e0c565b60405163ffffffff9485168152928416602084015292166040808301919091526001604060020a039092166060820152608001905180910390f35b341561087d57600080fd5b610888600435612f9d565b6040516001604060020a03978816815263ffffffff968716602082015294909516604080860191909152929095166060840152600160a060020a0316608083015260a082019390935260c081019190915260e001905180910390f35b34156108ef57600080fd5b6103256130b3565b341561090257600080fd5b61090d6004356130c2565b6040516001604060020a03909116815260200160405180910390f35b341561093457600080fd5b6104216001604060020a03600435166130fd565b341561095357600080fd5b61096a600160a060020a0360043516602435613150565b6040516001604060020a039a8b168152600160a060020a03998a166020820152979098166040808901919091526060880196909652931515608087015260a086019290925263ffffffff90811660c086015290811660e08501521661010083015291909216610120830152610140909101905180910390f35b34156109ee57600080fd5b6105c9613286565b3415610a0157600080fd5b61090d600435613290565b3415610a1757600080fd5b6102d9600160a060020a036004351661329e565b3415610a3657600080fd5b610a4d600160a060020a0360043516602435613348565b60405180846001604060020a03166001604060020a03168152602001838152602001828152602001935050505060405180910390f35b3415610a8e57600080fd5b6102d96001604060020a0360043516602435613393565b3415610ab057600080fd5b61024e600160a060020a036004351661364c565b6102d96001604060020a0360043516613667565b3415610ae357600080fd5b610688613959565b3415610af657600080fd5b6102d96001604060020a0360043516613965565b3415610b1557600080fd5b61090d600160a060020a0360043516602435613afd565b6102d96001604060020a0360043516613b48565b3415610b4b57600080fd5b610421613e02565b3415610b5e57600080fd5b6102d9600160a060020a0360043516613e0b565b3415610b7d57600080fd5b61096a600435613e62565b600a545b90565b6001604060020a031660009081526005602081815260408084206001015460089092529092206003810154600482015491909201549293919260ff90911691565b6000806000610bdd6149ba565b6002546000906101009004600160a060020a03161515610bfc57600080fd5b600354600160a060020a03161515610c1357600080fd5b6001604060020a0387166000908152600560205260408120600101541115610c3a57600080fd5b6001604060020a038716600090815260086020526040812080549096501115610c6257600080fd5b600354600160a060020a03169350836335f097f38860006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515610cbe57600080fd5b6102c65a03f11515610ccf57600080fd5b5050506040518051905015610ce357600080fd5b506002546101009004600160a060020a031691506000826307202460888360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515610d4657600080fd5b6102c65a03f11515610d5757600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150871682516001604060020a031614610dd657600080fd5b33600160a060020a03168260400151600160a060020a031614610df857600080fd5b610e028688613f33565b85600160a060020a031633600160a060020a03167fc1a01a90251d073f6f2b5d848f0e5dc2aca9b0a6743ed79946e599ad6d546528896040516001604060020a03909116815260200160405180910390a350505050505050565b6005602052600090815260409020805460019091015482565b6002546101009004600160a060020a031681565b600460205260009081526040902080546001820154600283015460039093015463ffffffff9283169391921684565b6001604060020a03811660009081526005602052604081206001015481908190819081908180821115610f7857610eee88611a5a565b600354939a5090985090955063ffffffff169350600160a060020a0316905080630672859b8960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515610f5b57600080fd5b6102c65a03f11515610f6c57600080fd5b50505060405180519550505b5091939550919395565b60016020526000908152604090205460ff1681565b600d5462010000900460ff1681565b60005433600160a060020a0390811691161480610fe15750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610fec57600080fd5b6002805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a03948516021790556003805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b600080600061104b6149ba565b6002546000906101009004600160a060020a0316151561106a57600080fd5b600354600160a060020a0316151561108157600080fd5b60025460ff161561109157600080fd5b6001604060020a03881660009081526005602052604081206001015411806110b7575086155b156110c157600080fd5b6001604060020a0388166000908152600860205260409020600481015490955060ff161515600114156110f357600080fd5b600354600160a060020a03169350836335f097f38960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561114f57600080fd5b6102c65a03f1151561116057600080fd5b505050604051805190501561117457600080fd5b506002546101009004600160a060020a031691506000826307202460898360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b15156111d757600080fd5b6102c65a03f115156111e857600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150881682516001604060020a03161461126757600080fd5b33600160a060020a03168260400151600160a060020a03161461128957600080fd5b845460009011156112a75760038501879055600585018690556112b3565b6112b333898989614300565b33600160a060020a03167fa67dda40b2486d90a85433ceabe8a464671ead8938ef7eb33e11b0fb828f6694896040516001604060020a03909116815260200160405180910390a25050505050505050565b600160a060020a03166000908152600c602052604090205490565b600080600061132c6149ba565b6002546000906101009004600160a060020a0316151561134b57600080fd5b600354600160a060020a0316151561136257600080fd5b6001604060020a038616600090815260056020526040812060010154111561138957600080fd5b6001604060020a0386166000908152600860205260408120805490965011156113b157600080fd5b600354600160a060020a03169350836335f097f38760006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561140d57600080fd5b6102c65a03f1151561141e57600080fd5b505050604051805190501561143257600080fd5b506002546101009004600160a060020a031691506000826307202460878360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b151561149557600080fd5b6102c65a03f115156114a657600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a03909216604087015291909116602085019081526001604060020a03909216845291506018905163ffffffff161161152457600080fd5b6001604060020a03861682516001604060020a03161461154357600080fd5b33600160a060020a03168260400151600160a060020a03161461156557600080fd5b82600160a060020a03166360c6ccb2338860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b15156115c257600080fd5b6102c65a03f115156115d357600080fd5b50505033600160a060020a03167fa19af89a96cde439cbd1ad5d955155f57449dd15808b36397d6684e430825e56876040516001604060020a03909116815260200160405180910390a2505050505050565b600354600160a060020a031681565b600080600080600080600080611648614a06565b600160a060020a038b166000908152600c60205260408120548b111561166d57611789565b600160a060020a038c166000908152600c6020526040902080548c90811061169157fe5b90600052602060002090600302016060604051908101604090815282546001604060020a031682526001830154602083015260029092015491810191909152915081519950816020015193508160400151925060008a6001604060020a03161115611789576116ff8a611a5a565b600354939c50909a5090975063ffffffff169550600160a060020a0316905080630672859b8b60006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561176c57600080fd5b6102c65a03f1151561177d57600080fd5b50505060405180519750505b50509295985092959890939650565b60005433600160a060020a039081169116146117b357600080fd5b6002805460ff1916911515919091179055565b6002546000906101009004600160a060020a031615156117e557600080fd5b600354600160a060020a031615156117fc57600080fd5b60025460ff161561180c57600080fd5b506001604060020a03811660009081526008602052604090208054151561183257600080fd5b600481015460ff16151561184557600080fd5b428160050154111561185657600080fd5b600181015433600160a060020a0390811691161461187357600080fd5b61187c826143db565b6118863383613f33565b611890338361455e565b33600160a060020a03167fa46e3c6c83db41772890d273b010c0afddf1a1e6abce28b37e5d7eb80964f4bd836040516001604060020a03909116815260200160405180910390a25050565b60005474010000000000000000000000000000000000000000900461ffff1681565b6001604060020a03811660009081526008602052604081208054600182015460028301546003840154600485015460058601549496600160a060020a03948516969390941694919360ff9091169281908190819061195a8c612e0c565b9d9f9c9e509a9c999b989a979991989097965090945092505050565b60095463ffffffff1681565b6008602052600090815260409020805460018201546002830154600384015460048501546005909501549394600160a060020a03938416949390921692909160ff169086565b60005433600160a060020a0390811691161480611a035750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611a0e57600080fd5b30600160a060020a031631811115611a2557600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f193505050501515611a5657600080fd5b5050565b6000806000806000611a6a6149ba565b6002546101009004600160a060020a0316915081630720246088600060405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515611acb57600080fd5b6102c65a03f11515611adc57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a08701529081166080860152600160a060020a03909116604085015216602083019081526001604060020a03909116825251816040015182608001518360a00151955095509550955050509193509193565b6002546000906101009004600160a060020a03161515611b9057600080fd5b600354600160a060020a03161515611ba757600080fd5b60025460ff1615611bb757600080fd5b506001604060020a038116600090815260086020526040902080541515611bdd57600080fd5b600181015433600160a060020a03908116911614611bfa57600080fd5b600481015460ff16151560011415611c1157600080fd5b611a56826143db565b60075490565b60005433600160a060020a0390811691161480611c5b5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611c6657600080fd5b608060405190810160409081526001808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101766060840152600052600490527fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe058151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526002808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101986060840152600052600490527f91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a78151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526003808352670429d069189e0000602080850191909152660aa87bee538000928401929092526101756060840152600052600490527f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa08151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260048083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101b56060840152600081905290527f1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600580835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101f16060840152600052600490527f04cde762ef08b6b6c5ded8e8c4c0b3f4e5c9ad7342c88fcc93681b4588b73f058151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526006808352670429d069189e0000602080850191909152660aa87bee5380009284019290925261017c6060840152600052600490527fc59312466997bb42aaaf719ece141047820e6b34531e1670dc1852a453648f0f8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260078083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101596060840152600052600490527fbeb3bad75134cb432e5707980e3245c52c5998a1125ee30f2f0dbf3925b1e5518151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600880835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526102066060840152600052600490527f2645749a946633740611cfc8178319f0958659d6922e4bf7e3a08b44789f53a48151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600980835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101bf6060840152600052600490527f4ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b9338151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600a8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261017c6060840152600052600490527f5c6b02db8b672415ffad906d7ccee10bd53dbad7d0b29e2bc0e50c93d5f310938151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600b8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101626060840152600052600490527f0c1469ad586d86b6976c45826d7ae56d76ee516e37a2bccffbe904b74dbae7ea8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600c8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015a6060840152600052600490527f140aabff1a85df08546c9a350c79ae18341bde4a2cef5d2fd460885c0128ce268151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600d8083526702c68af0bb14000060208085019190915266071afd498d00009284019290925261015f6060840152600052600490527fa5022b2bfd144bf9103d80168549b5df7c72ab60bd51bf71a02a08d844853b4a8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600e8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101526060840152600052600490527feb3e677499e881fe1bdbc344a49c412138038a9f40883b6dc68f713aab4835238151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152600f8083526702c68af0bb14000060208085019190915266071afd498d0000928401929092526101556060840152600052600490527f66b61daf77b854ca6ba000a8d4b340eafcdb71b6583753b4af89fceb54988fff8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260108083526704db732547630000602080850191909152660c6f3b40b6c000928401929092526101806060840152600052600490527f4a597304b2df0a7a7b428b3c24c35ba6373aabebf9972387f5610f74a01b21bd8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526011808352670de0b6b3a7640000602080850191909152662386f26fc10000928401929092526101316060840152600052600490527fac375bcb880242328180c23d4a918023a12a7caf7cf12b8c4074e4a3f39900a08151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601280835267016345785d8a000060208085019190915266038d7ea4c68000928401929092526101ab6060840152600052600490527f7f6fa3f34639ea1891363ca773619dbd5f652d7ab50411111dde2f57e3ae13ad8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526013808352670de0b6b3a7640000602080850191909152662386f26fc10000928401929092526101306060840152600052600490527f9bbf2ad10217b6212df1939350a047a69b6887b770020d3fa8c328c0653ee9878151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff9092169190911790555060806040519081016040908152601480835267058d15e17628000060208085019190915266b1a2bc2ec500009284019290925260526060840152600052600490527ff7deed9399d719bf61dcb1322c056a03a885c275ab093673b0cc182b84bea0618151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260158083526001602080850182905292840152607b6060840152600052600490527f1bb30a1647f6f6723cb3a88838ce0319afabe51263fc466f2f669a7a24ad88c68151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260168083526702c68af0bb14000060208085019190915266038d7ea4c68000928401929092526101d46060840152600052600490527f87e655ef16e4075af30c6a90c2b439f7dcd2d83a606dafadaee10cffaf9181328151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff909216919091179055506080604051908101604090815260178083526706f05b59d3b200006020808501919091526608e1bc9bf040009284019290925261012e6060840152600052600490527fff624574ceefb6578b3887a7448cf2ca4d120002f646987b0a9b9ad3f6dc2c108151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550608060405190810160409081526018808352670de0b6b3a76400006020808501919091526611c37937e080009284019290925260c36060840152600052600490527f1ac66383b86984a837d32661c9fdda480194de6e2dbd3891e29fadcb763a62da8151815463ffffffff191663ffffffff9190911617815560208201518160010155604082015181600201556060820151600391909101805463ffffffff191663ffffffff90921691909117905550565b60005433600160a060020a03908116911614612d0557600080fd5b600160a060020a03811660009081526001602052604090205460ff161515612d9157600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b60005433600160a060020a0390811691161480612dcf5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515612dda57600080fd5b600d805460ff909216620100000262ff00001961ffff90941661ffff199093169290921792909216179055565b601881565b6000806000806000612e1c6149ba565b6002546101009004600160a060020a031691506000808363072024608a8360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515612e7f57600080fd5b6102c65a03f11515612e9057600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a03918216604080890191909152921660208701526001604060020a03909216855260035490911692508290630672859b908b90600090516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b1515612f5f57600080fd5b6102c65a03f11515612f7057600080fd5b5050506040518051915050602083015183608001518460a00151919b909a50909850909650945050505050565b600080600080600080600080600789815481101515612fb857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a031697506000886001604060020a031611156130a757612ffe88611a5a565b600354939a5090985090955063ffffffff169350600160a060020a0316905080630672859b8960006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561306b57600080fd5b6102c65a03f1151561307c57600080fd5b50505060405180516001604060020a038a166000908152600560205260409020600101549096509250505b50919395979092949650565b600054600160a060020a031681565b60078054829081106130d057fe5b9060005260206000209060049182820401919006600802915054906101000a90046001604060020a031681565b6001604060020a0381166000908152600560205260408120600101548190118061314a57506001604060020a038216600090815260086020526040902060010154600160a060020a031615155b92915050565b6000806000806000806000806000806000600b60008e600160a060020a0316600160a060020a03168152602001908152602001600020805490508c111561319657613276565b600160a060020a038d166000908152600b6020526040902080548d9081106131ba57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169a50600860008c6001604060020a03166001604060020a0316815260200190815260200160002090508060010160009054906101000a9004600160a060020a031699508060020160009054906101000a9004600160a060020a03169850806003015497508060040160009054906101000a900460ff1696508060050154955061326b8b612e0c565b929750909550935091505b509295989b9194979a5092959850565b600d5461ffff1681565b600a8054829081106130d057fe5b60005433600160a060020a039081169116146132b957600080fd5b600160a060020a03811660009081526001602081905260409091205460ff1615151415612d9157600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b600c6020528160005260406000208181548110151561336357fe5b60009182526020909120600390910201805460018201546002909201546001604060020a03909116935090915083565b60008060006133a06149ba565b6002546000906101009004600160a060020a031615156133bf57600080fd5b600354600160a060020a031615156133d657600080fd5b60025460ff16156133e657600080fd5b8515156133f257600080fd5b6001604060020a03871660009081526008602052604081208054909650111561341a57600080fd5b600354600160a060020a03169350836335f097f38860006040516020015260405160e060020a63ffffffff84160281526001604060020a039091166004820152602401602060405180830381600087803b151561347657600080fd5b6102c65a03f1151561348757600080fd5b505050604051805190501561349b57600080fd5b506002546101009004600160a060020a031691506000826307202460888360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b15156134fe57600080fd5b6102c65a03f1151561350f57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150871682516001604060020a03161461358e57600080fd5b33600160a060020a03168260400151600160a060020a0316146135b057600080fd5b6001604060020a03871660009081526005602052604081205411156135f2576001604060020a03871660009081526005602052604090206001018690556135fc565b6135fc87876146bf565b33600160a060020a03167feb7043a06aaf528eb4562cb77682ccaa8efe8ac7b6759947feaf9f77a16aa10e886040516001604060020a03909116815260200160405180910390a250505050505050565b600160a060020a03166000908152600b602052604090205490565b6000806136726149ba565b600080600061367f614a06565b6002546101009004600160a060020a0316151561369b57600080fd5b600354600160a060020a031615156136b257600080fd5b60025460ff16156136c257600080fd5b6001604060020a03881660009081526005602052604090206001015496508615806136ed5750863414155b156136f757600080fd5b6002546101009004600160a060020a0316955060009350856307202460898660405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b151561375b57600080fd5b6102c65a03f1151561376c57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08d0152505063ffffffff91821660808b0152600160a060020a0390921660408a01529190911660208801526001604060020a0391821687529450881685516001604060020a0316146137eb57600080fd5b33600160a060020a03168560400151600160a060020a0316141561380e57600080fd5b8460400151600d5490935060649061ffff16880204915061382e8861474d565b6138383389613f33565b82600160a060020a03166108fc61384f8985614890565b9081150290604051600060405180830381858888f19350505050151561387457600080fd5b606060405190810160409081526001604060020a038a16825260208083018a90524282840152600160a060020a0386166000908152600c90915220805491925090600181016138c38382614a26565b600092835260209092208391600302018151815467ffffffffffffffff19166001604060020a0391909116178155602082015181600101556040820151816002015550505033600160a060020a03167fbfa4ed7e68cf0c080716886ff4468113df6b425ef79ac4911a1f264202dce424896040516001604060020a03909116815260200160405180910390a25050505050505050565b60065463ffffffff1681565b600061396f6149ba565b6002546000906101009004600160a060020a0316151561398e57600080fd5b600354600160a060020a031615156139a557600080fd5b60025460ff16156139b557600080fd5b6001604060020a03841660009081526005602052604090205415156139d957600080fd5b506002546101009004600160a060020a031691506000826307202460858360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613a3c57600080fd5b6102c65a03f11515613a4d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08a0152505063ffffffff9182166080880152600160a060020a0390921660408701529190911660208501526001604060020a0391821684529150841682516001604060020a031614613acc57600080fd5b33600160a060020a03168260400151600160a060020a031614613aee57600080fd5b613af78461474d565b50505050565b600b60205281600052604060002081815481101515613b1857fe5b9060005260206000209060049182820401919006600802915091509054906101000a90046001604060020a031681565b6000806000613b556149ba565b600254600090819081906101009004600160a060020a03161515613b7857600080fd5b600354600160a060020a03161515613b8f57600080fd5b60025460ff1615613b9f57600080fd5b6001604060020a038816600090815260086020526040902080549097501515613bc757600080fd5b600487015460ff16151560011415613bde57600080fd5b60038701549550348614613bf157600080fd5b6002546101009004600160a060020a0316945060009250846307202460898560405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613c5557600080fd5b6102c65a03f11515613c6657600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08c0152505063ffffffff91821660808a0152600160a060020a0390921660408901529190911660208701526001604060020a0391821686529350881684516001604060020a031614613ce557600080fd5b33600160a060020a03168460400151600160a060020a03161415613d0857600080fd5b600d5460649061ffff16870260028901805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a03161790556005890180544201905560048901805460ff1916600117905504915060408401519050613d6b3389613f33565b80600160a060020a03166108fc613d828885614890565b9081150290604051600060405180830381858888f193505050501515613da757600080fd5b613db181896148a4565b33600160a060020a03167fec9485c094547f7e3de5ae91993db798d626a05c7561391e1dc7129aec0c0e21896040516001604060020a03909116815260200160405180910390a25050505050505050565b60025460ff1681565b60005433600160a060020a03908116911614613e2657600080fd5b600160a060020a03811615612d915760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6000806000806000806000806000806000600a8c815481101515613e8257fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03169a50600860008c6001604060020a03166001604060020a0316815260200190815260200160002090508060010160009054906101000a9004600160a060020a031699508060020160009054906101000a9004600160a060020a03169850806003015497508060040160009054906101000a900460ff1696508060050154955061195a8b612e0c565b6000613f3d6149ba565b6002546101009004600160a060020a03169150600080836307202460868360405160e0015260405160e060020a63ffffffff84160281526001604060020a03909116600482015260240160e060405180830381600087803b1515613fa057600080fd5b6102c65a03f11515613fb157600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08b01525063ffffffff90811660c08a015290811660a08901529081166080880152600160a060020a03909116604087015216602085019081526001604060020a0390911684526018905163ffffffff16116142125760046000846020015163ffffffff1663ffffffff16815260200190815260200160002091508260200151825463ffffffff9081169116141561421257600382015463ffffffff1660c084015163ffffffff1610156142125760038201546140ab9063ffffffff1660c085015163ffffffff16614890565b905060008163ffffffff1611156142125783600160a060020a03166389b2050b84604001516140e48463ffffffff16866002015461498f565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561413057600080fd5b6102c65a03f1151561414157600080fd5b50505060405180515050600160a060020a0384166332666a31845185608001518660a00151600387015463ffffffff1660405163ffffffff86811660e060020a0282526001604060020a0395909516600482015292841660448401529083166064830152909116608482015260a06024820152600960a48201527f206e616d65206d6520000000000000000000000000000000000000000000000060c482015260e401600060405180830381600087803b15156141fd57600080fd5b6102c65a03f1151561420e57600080fd5b5050505b83600160a060020a03166360c6ccb284604001518760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b151561427357600080fd5b6102c65a03f1151561428457600080fd5b50505083600160a060020a0316639248019e878760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526001604060020a03166024820152604401600060405180830381600087803b15156142e457600080fd5b6102c65a03f115156142f557600080fd5b505050505050505050565b6001604060020a0383166000908152600860205260409020600181018054600160a060020a03871673ffffffffffffffffffffffffffffffffffffffff199182161790915560028201805490911690556003810183905560048101805460ff1916905560058101829055805415156143d457600a8054600101906143849082614a52565b808255600a805486926000190190811061439a57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055505b5050505050565b6001604060020a03811660009081526008602052604090208054151561440057611a56565b600a54815411611a56578054600a8054600891600091600019810190811061442457fe5b6000918252602080832060048084049091015492066008026101000a9091046001604060020a03168352820192909252604001902055600a8054600019810190811061446c57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316600a60018360000154038154811015156144ab57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055506001600a818180549050039150816144fc9190614a52565b50506001604060020a0316600090815260086020526040812081815560018101805473ffffffffffffffffffffffffffffffffffffffff1990811690915560028201805490911690556003810182905560048101805460ff1916905560050155565b600160a060020a0382166000908152600b602052604081205b80548210156145e057826001604060020a0316818381548110151561459857fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166001604060020a031614156145d5576145e0565b600190910190614577565b8054821015613af7578054819060001981019081106145fb57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a0316818381548110151561463257fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a0316021790555080600182805490500381548110151561468057fe5b90600052602060002090600491828204019190066008026101000a8154906001604060020a030219169055808054809190600190036143d49190614a52565b6001604060020a038216600090815260056020526040902060018101829055805415156147485760078054600101906146f89082614a52565b8082556007805485926000190190811061470e57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a031602179055505b505050565b6001604060020a03811660009081526005602052604090208054151561477257611a56565b600754815411611a5657805460078054600591600091600019810190811061479657fe5b6000918252602080832060048084049091015492066008026101000a9091046001604060020a031683528201929092526040019020556007805460001981019081106147de57fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166007600183600001540381548110151561481d57fe5b90600052602060002090600491828204019190066008026101000a8154816001604060020a0302191690836001604060020a03160217905550600160078181805490500391508161486e9190614a52565b50506001604060020a0316600090815260056020526040812081815560010155565b6000808284101561489d57fe5b5050900390565b600080600160a060020a03841615613af7575050600160a060020a0382166000908152600b60205260408120905b815481101561493857826001604060020a031682828154811015156148f357fe5b90600052602060002090600491828204019190066008029054906101000a90046001604060020a03166001604060020a0316141561493057613af7565b6001016148d2565b815482906001810161494a8382614a52565b916000526020600020906004918282040191900660080285909190916101000a8154816001604060020a0302191690836001604060020a031602179055505050505050565b60008282028315806149ab57508284828115156149a857fe5b04145b15156149b357fe5b9392505050565b610100604051908101604090815260008083526020830181905290820152606081016149e4614a86565b8152600060208201819052604082018190526060820181905260809091015290565b606060405190810160409081526000808352602083018190529082015290565b815481835581811511614748576003028160030283600052602060002091820191016147489190614a98565b8154818355818115116147485760030160049004816003016004900483600052602060002091820191016147489190614acf565b60206040519081016040526000815290565b610b8c91905b80821115614acb57805467ffffffffffffffff191681556000600182018190556002820155600301614a9e565b5090565b610b8c91905b80821115614acb5760008155600101614ad55600a165627a7a7230582073bb2bd72813d7046e86d3c077137127791d6f12c219717e2b389720d91d31850029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _dataContract (address): 0xABC1c404424BDF24C19A5cC5EF8F47781D18Eb3E
Arg [1] : _battleContract (address): 0x0000000000000000000000000000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Swarm Source
bzzr://73bb2bd72813d7046e86d3c077137127791d6f12c219717e2b389720d91d3185
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.