Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 31,706 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Start Training | 12750657 | 1110 days ago | IN | 0.001 ETH | 0.00110319 | ||||
Start Training | 7892765 | 1870 days ago | IN | 0.001 ETH | 0.00020263 | ||||
Start Training | 7892745 | 1870 days ago | IN | 0.001 ETH | 0.00039627 | ||||
Withdraw Ether | 7787718 | 1886 days ago | IN | 0 ETH | 0.0013245 | ||||
Start Training | 7347136 | 1955 days ago | IN | 0.001 ETH | 0.00058587 | ||||
Start Training | 7307689 | 1961 days ago | IN | 0.001 ETH | 0.0006503 | ||||
Start Training | 7306788 | 1961 days ago | IN | 0.001 ETH | 0.00114142 | ||||
Start Training | 7306709 | 1961 days ago | IN | 0.001 ETH | 0.00074804 | ||||
Start Training | 7306707 | 1961 days ago | IN | 0.001 ETH | 0.0005782 | ||||
Start Training | 7306704 | 1961 days ago | IN | 0.001 ETH | 0.00079929 | ||||
Start Training | 7306702 | 1961 days ago | IN | 0.001 ETH | 0.00074168 | ||||
Start Training | 7306698 | 1961 days ago | IN | 0.001 ETH | 0.00057928 | ||||
Start Training | 7306342 | 1961 days ago | IN | 0.001 ETH | 0.00057199 | ||||
Start Training | 7305401 | 1961 days ago | IN | 0.001 ETH | 0.00053844 | ||||
Start Training | 7305251 | 1961 days ago | IN | 0.001 ETH | 0.00036677 | ||||
Start Training | 7305245 | 1961 days ago | IN | 0.001 ETH | 0.00037254 | ||||
Start Training | 7305203 | 1961 days ago | IN | 0.001 ETH | 0.00036156 | ||||
Start Training | 7304692 | 1962 days ago | IN | 0.001 ETH | 0.00090263 | ||||
Start Training | 7304580 | 1962 days ago | IN | 0.001 ETH | 0.00110871 | ||||
Start Training | 7304422 | 1962 days ago | IN | 0.001 ETH | 0.00055802 | ||||
Start Training | 7304186 | 1962 days ago | IN | 0.001 ETH | 0.00056813 | ||||
Start Training | 7303275 | 1962 days ago | IN | 0.001 ETH | 0.00087374 | ||||
Start Training | 7302651 | 1962 days ago | IN | 0.001 ETH | 0.00133165 | ||||
Start Training | 7302635 | 1962 days ago | IN | 0.001 ETH | 0.00042129 | ||||
Start Training | 7302509 | 1962 days ago | IN | 0.001 ETH | 0.00122127 |
Loading...
Loading
Contract Name:
EtheremonGym
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-13 */ 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 } enum PropertyType { ANCESTOR, XFACTOR } enum BattleResult { CASTLE_WIN, CASTLE_LOSE, CASTLE_DESTROYED } enum CacheClassInfoType { CLASS_TYPE, CLASS_STEP, CLASS_ANCESTOR } } contract EtheremonDataBase is EtheremonEnum, BasicAccessControl, SafeMath { uint64 public totalMonster; uint32 public totalClass; // 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); } contract EtheremonGateway is EtheremonEnum, BasicAccessControl { // using for battle contract later function increaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public; function decreaseMonsterExp(uint64 _objId, uint32 amount) onlyModerators public; // read function isGason(uint64 _objId) constant external returns(bool); function getObjBattleInfo(uint64 _objId) constant external returns(uint32 classId, uint32 exp, bool isGason, uint ancestorLength, uint xfactorsLength); function getClassPropertySize(uint32 _classId, PropertyType _type) constant external returns(uint); function getClassPropertyValue(uint32 _classId, PropertyType _type, uint index) constant external returns(uint32); } contract EtheremonGym is EtheremonEnum, BasicAccessControl, SafeMath { uint8 constant public STAT_COUNT = 6; struct MonsterObjAcc { uint64 monsterId; uint32 classId; address trainer; string name; uint32 exp; uint32 createIndex; uint32 lastClaimIndex; uint createTime; } struct AttackData { uint32 objClassId; address trainee; uint8 objLevel; uint8 winCount; uint32 winExp; uint32 loseExp; } struct HpData { uint16 aHpAttack; uint16 aHpAttackCritical; uint16 bHpAttack; uint16 bHpAttackCritical; } struct GymTrainer { uint32 classId; uint8[6] statBases; } struct TrainingLog { uint8[3] trainers; uint8 trainerLevel; uint64 objId; uint8 objLevel; uint8 ran; } struct CacheClassInfo { uint8[] types; uint8[] steps; uint32[] ancestors; } mapping(uint8 => GymTrainer) public gymTrainers; mapping(address => TrainingLog) public trainees; mapping(uint8 => uint8) typeAdvantages; mapping(uint32 => CacheClassInfo) cacheClasses; mapping(uint8 => uint32) levelExps; mapping(uint8 => uint32) levelExpGains; uint256 public gymFee = 0.001 ether; uint8 public maxTrainerLevel = 5; uint8 public totalTrainer = 0; uint8 public maxRandomRound = 4; uint8 public typeBuffPercentage = 20; uint8 public minHpDeducted = 10; uint8 public expPercentage = 70; // contract address public worldContract; address public dataContract; // modifier modifier requireDataContract { require(dataContract != address(0)); _; } modifier requireWorldContract { require(worldContract != address(0)); _; } // constructor function EtheremonGym(address _dataContract, address _worldContract) public { dataContract = _dataContract; worldContract = _worldContract; } // admin & moderators function setTypeAdvantages() onlyModerators external { typeAdvantages[1] = 14; typeAdvantages[2] = 16; typeAdvantages[3] = 8; typeAdvantages[4] = 9; typeAdvantages[5] = 2; typeAdvantages[6] = 11; typeAdvantages[7] = 3; typeAdvantages[8] = 5; typeAdvantages[9] = 15; typeAdvantages[11] = 18; // skipp 10 typeAdvantages[12] = 7; typeAdvantages[13] = 6; typeAdvantages[14] = 17; typeAdvantages[15] = 13; typeAdvantages[16] = 12; typeAdvantages[17] = 1; typeAdvantages[18] = 4; } function setTypeAdvantage(uint8 _type1, uint8 _type2) onlyModerators external { typeAdvantages[_type1] = _type2; } function setCacheClassInfo(uint32 _classId) onlyModerators requireDataContract requireWorldContract public { EtheremonDataBase data = EtheremonDataBase(dataContract); EtheremonGateway gateway = EtheremonGateway(worldContract); uint i = 0; CacheClassInfo storage classInfo = cacheClasses[_classId]; // add type i = data.getSizeArrayType(ArrayType.CLASS_TYPE, uint64(_classId)); uint8[] memory aTypes = new uint8[](i); for(; i > 0 ; i--) { aTypes[i-1] = data.getElementInArrayType(ArrayType.CLASS_TYPE, uint64(_classId), i-1); } classInfo.types = aTypes; // add steps i = data.getSizeArrayType(ArrayType.STAT_STEP, uint64(_classId)); uint8[] memory steps = new uint8[](i); for(; i > 0 ; i--) { steps[i-1] = data.getElementInArrayType(ArrayType.STAT_STEP, uint64(_classId), i-1); } classInfo.steps = steps; // add ancestor i = gateway.getClassPropertySize(_classId, PropertyType.ANCESTOR); uint32[] memory ancestors = new uint32[](i); for(; i > 0 ; i--) { ancestors[i-1] = gateway.getClassPropertyValue(_classId, PropertyType.ANCESTOR, i-1); } classInfo.ancestors = ancestors; } function fastSetCacheClassInfo(uint32 _classId1, uint32 _classId2, uint32 _classId3, uint32 _classId4) onlyModerators requireDataContract requireWorldContract external { setCacheClassInfo(_classId1); setCacheClassInfo(_classId2); setCacheClassInfo(_classId3); setCacheClassInfo(_classId4); } function presetGymTrainer() onlyModerators external { GymTrainer storage trainer1 = gymTrainers[1]; trainer1.classId = 12; trainer1.statBases[0] = 85; trainer1.statBases[1] = 95; trainer1.statBases[2] = 65; trainer1.statBases[3] = 50; trainer1.statBases[4] = 50; trainer1.statBases[5] = 50; GymTrainer storage trainer2 = gymTrainers[2]; trainer2.classId = 15; trainer2.statBases[0] = 50; trainer2.statBases[1] = 55; trainer2.statBases[2] = 85; trainer2.statBases[3] = 85; trainer2.statBases[4] = 40; trainer2.statBases[5] = 75; GymTrainer storage trainer3 = gymTrainers[3]; trainer3.classId = 8; trainer3.statBases[0] = 110; trainer3.statBases[1] = 60; trainer3.statBases[2] = 40; trainer3.statBases[3] = 60; trainer3.statBases[4] = 40; trainer3.statBases[5] = 40; GymTrainer storage trainer4 = gymTrainers[4]; trainer4.classId = 4; trainer4.statBases[0] = 54; trainer4.statBases[1] = 69; trainer4.statBases[2] = 58; trainer4.statBases[3] = 75; trainer4.statBases[4] = 75; trainer4.statBases[5] = 70; GymTrainer storage trainer5 = gymTrainers[5]; trainer5.classId = 6; trainer5.statBases[0] = 50; trainer5.statBases[1] = 50; trainer5.statBases[2] = 50; trainer5.statBases[3] = 105; trainer5.statBases[4] = 55; trainer5.statBases[5] = 95; GymTrainer storage trainer6 = gymTrainers[6]; trainer6.classId = 13; trainer6.statBases[0] = 55; trainer6.statBases[1] = 90; trainer6.statBases[2] = 95; trainer6.statBases[3] = 45; trainer6.statBases[4] = 35; trainer6.statBases[5] = 35; GymTrainer storage trainer7 = gymTrainers[7]; trainer7.classId = 7; trainer7.statBases[0] = 85; trainer7.statBases[1] = 60; trainer7.statBases[2] = 73; trainer7.statBases[3] = 75; trainer7.statBases[4] = 80; trainer7.statBases[5] = 50; GymTrainer storage trainer8 = gymTrainers[8]; trainer8.classId = 24; trainer8.statBases[0] = 140; trainer8.statBases[1] = 135; trainer8.statBases[2] = 70; trainer8.statBases[3] = 77; trainer8.statBases[4] = 90; trainer8.statBases[5] = 50; GymTrainer storage trainer9 = gymTrainers[9]; trainer9.classId = 16; trainer9.statBases[0] = 70; trainer9.statBases[1] = 105; trainer9.statBases[2] = 80; trainer9.statBases[3] = 60; trainer9.statBases[4] = 80; trainer9.statBases[5] = 90; totalTrainer = 9; } function setGymTrainer(uint8 _trainerId, uint32 _classId, uint8 _s0, uint8 _s1, uint8 _s2, uint8 _s3, uint8 _s4, uint8 _s5) onlyModerators external { GymTrainer storage trainer = gymTrainers[_trainerId]; if (trainer.classId == 0) totalTrainer += 1; trainer.classId = _classId; trainer.statBases[0] = _s0; trainer.statBases[1] = _s1; trainer.statBases[2] = _s2; trainer.statBases[3] = _s3; trainer.statBases[4] = _s4; trainer.statBases[5] = _s5; } function setContract(address _dataContract, address _worldContract) onlyModerators external { dataContract = _dataContract; worldContract = _worldContract; } function setConfig(uint256 _gymFee, uint8 _maxTrainerLevel, uint8 _maxRandomRound, uint8 _typeBuffPercentage, uint8 _minHpDeducted, uint8 _expPercentage) onlyModerators external { gymFee = _gymFee; maxTrainerLevel = _maxTrainerLevel; maxRandomRound = _maxRandomRound; typeBuffPercentage = _typeBuffPercentage; minHpDeducted = _minHpDeducted; expPercentage = _expPercentage; } function genLevelExp() onlyModerators external { uint8 level = 1; uint32 requirement = 100; uint32 sum = requirement; while(level <= 100) { levelExps[level] = sum; level += 1; requirement = (requirement * 11) / 10 + 5; sum += requirement; } } function genLevelExpGain() onlyModerators external { levelExpGains[1] = 31; levelExpGains[2] = 33; levelExpGains[3] = 34; levelExpGains[4] = 36; levelExpGains[5] = 38; levelExpGains[6] = 40; levelExpGains[7] = 42; levelExpGains[8] = 44; levelExpGains[9] = 46; levelExpGains[10] = 48; } function setLevelExpGain(uint8 _level, uint32 _exp) onlyModerators external { levelExpGains[_level] = _exp; } function withdrawEther(address _sendTo, uint _amount) onlyModerators external { if (_amount > this.balance) { revert(); } _sendTo.transfer(_amount); } // public function getCacheClassSize(uint32 _classId) constant public returns(uint, uint, uint) { CacheClassInfo storage classInfo = cacheClasses[_classId]; return (classInfo.types.length, classInfo.steps.length, classInfo.ancestors.length); } function getTrainerInfo(uint8 _trainerId) constant external returns(uint32, uint8, uint8, uint8, uint8, uint8, uint8) { GymTrainer memory trainer = gymTrainers[_trainerId]; return (trainer.classId, trainer.statBases[0], trainer.statBases[1], trainer.statBases[2], trainer.statBases[3], trainer.statBases[4], trainer.statBases[5]); } function getRandom(uint8 maxRan, uint8 index) constant public returns(uint8) { uint256 genNum = uint256(block.blockhash(block.number-1)); for (uint8 i = 0; i < index && i < 6; i ++) { genNum /= 256; } return uint8(genNum % maxRan); } function getLevel(uint32 exp) view public returns (uint8) { uint8 minIndex = 1; uint8 maxIndex = 100; uint8 currentIndex; while (minIndex < maxIndex) { currentIndex = (minIndex + maxIndex) / 2; if (exp < levelExps[currentIndex]) maxIndex = currentIndex; else minIndex = currentIndex + 1; } return minIndex; } function getGainExp(uint8 xLevel, uint8 yLevel) constant public returns(uint32 winExp, uint32 loseExp){ winExp = levelExpGains[yLevel] * expPercentage / 100; if (xLevel > yLevel) { if (xLevel > yLevel + 10) { winExp = 5; } else { winExp /= uint32(3) ** (xLevel - yLevel) / uint32(2) ** (xLevel - yLevel); if (winExp < 5) winExp = 5; } } loseExp = winExp / 3; } function safeDeduct(uint16 a, uint16 b) pure private returns(uint16){ if (a > b) { return a - b; } return 0; } function getTypeSupport(uint32 _aClassId, uint32 _bClassId) constant private returns (bool aHasAdvantage, bool bHasAdvantage) { // check types for (uint i = 0; i < cacheClasses[_aClassId].types.length; i++) { for (uint j = 0; j < cacheClasses[_bClassId].types.length; j++) { if (typeAdvantages[cacheClasses[_aClassId].types[i]] == cacheClasses[_bClassId].types[j]) { aHasAdvantage = true; } if (typeAdvantages[cacheClasses[_bClassId].types[j]] == cacheClasses[_aClassId].types[i]) { bHasAdvantage = true; } } } } function calHpDeducted(uint16 _attack, uint16 _specialAttack, uint16 _defense, uint16 _specialDefense, bool _lucky) view public returns(uint16){ if (_lucky) { _attack = _attack * 13 / 10; _specialAttack = _specialAttack * 13 / 10; } uint16 hpDeducted = safeDeduct(_attack, _defense * 3 /4); uint16 hpSpecialDeducted = safeDeduct(_specialAttack, _specialDefense* 3 / 4); if (hpDeducted < minHpDeducted && hpSpecialDeducted < minHpDeducted) return minHpDeducted; if (hpDeducted > hpSpecialDeducted) return hpDeducted; return hpSpecialDeducted; } function attack(uint8 _index, uint8 _ran, uint16[6] _aStats, uint16[6] _bStats) constant public returns(bool win) { if (_ran < _index * maxRandomRound) _ran = maxRandomRound; else _ran = _ran - _index * maxRandomRound; uint16 round = 0; uint16 aHp = _aStats[0]; uint16 bHp = _bStats[0]; if (_aStats[5] > _bStats[5]) { while (round < maxRandomRound && aHp > 0 && bHp > 0) { if (round % 2 == 0) { // a attack bHp = safeDeduct(bHp, calHpDeducted(_aStats[1], _aStats[3], _bStats[2], _bStats[4], round==_ran)); } else { aHp = safeDeduct(aHp, calHpDeducted(_bStats[1], _bStats[3], _aStats[2], _aStats[4], round==_ran)); } round++; } } else { while (round < maxRandomRound && aHp > 0 && bHp > 0) { if (round % 2 != 0) { bHp = safeDeduct(bHp, calHpDeducted(_aStats[1], _aStats[3], _bStats[2], _bStats[4], round==_ran)); } else { aHp = safeDeduct(aHp, calHpDeducted(_bStats[1], _bStats[3], _aStats[2], _aStats[4], round==_ran)); } round++; } } win = aHp >= bHp; } function attackTrainer(uint8 _index, uint8 _ran, uint8 _trainerId, uint8 _trainerLevel, uint32 _objClassId, uint16[6] _objStats) constant public returns(bool result) { GymTrainer memory trainer = gymTrainers[_trainerId]; uint16[6] memory trainerStats; uint i = 0; for (i=0; i < STAT_COUNT; i+=1) { trainerStats[i] = trainer.statBases[i]; } for (i=0; i < cacheClasses[trainer.classId].steps.length; i++) { trainerStats[i] += uint16(safeMult(cacheClasses[trainer.classId].steps[i], _trainerLevel*3)); } bool objHasAdvantage; bool trainerHasAdvantage; (objHasAdvantage, trainerHasAdvantage) = getTypeSupport(_objClassId, trainer.classId); uint16 originAttack = _objStats[1]; uint16 originAttackSpecial = _objStats[3]; if (objHasAdvantage) { _objStats[1] += _objStats[1] * typeBuffPercentage / 100; _objStats[3] += _objStats[3] * typeBuffPercentage / 100; } if (trainerHasAdvantage) { trainerStats[1] += trainerStats[1] * typeBuffPercentage / 100; trainerStats[3] += trainerStats[3] * typeBuffPercentage / 100; } result = attack(_index, _ran, _objStats, trainerStats); _objStats[1] = originAttack; _objStats[3] = originAttackSpecial; } function getObjInfo(uint64 _objId) constant public returns(uint32 classId, address trainee, uint8 level) { EtheremonDataBase data = EtheremonDataBase(dataContract); MonsterObjAcc memory obj; (obj.monsterId, classId, trainee, obj.exp, obj.createIndex, obj.lastClaimIndex, obj.createTime) = data.getMonsterObj(_objId); level = getLevel(obj.exp); } function startTraining(uint64 _objId, uint8 _trainerLevel, uint8 _t1, uint8 _t2, uint8 _t3) isActive requireDataContract requireWorldContract payable external { if (_trainerLevel > maxTrainerLevel) revert(); if (msg.value != gymFee) revert(); if (_t1 == _t2 || _t1 == _t3 || _t2 == _t3) revert(); if (_t1 == 0 || _t2 == 0 || _t3 == 0 || _t1 > totalTrainer || _t2 > totalTrainer || _t3 > totalTrainer) revert(); AttackData memory att; (att.objClassId, att.trainee, att.objLevel) = getObjInfo(_objId); if (msg.sender != att.trainee) revert(); uint i = 0; uint16[6] memory objStats; EtheremonDataBase data = EtheremonDataBase(dataContract); for (i=0; i < STAT_COUNT; i+=1) { objStats[i] = data.getElementInArrayType(ArrayType.STAT_BASE, _objId, i); } for (i=0; i < cacheClasses[att.objClassId].steps.length; i++) { objStats[i] += uint16(safeMult(cacheClasses[att.objClassId].steps[i], att.objLevel*3)); } att.winCount = 0; uint8 ran = getRandom(maxRandomRound*3, 0); if (attackTrainer(0, ran, _t1, _trainerLevel, att.objClassId, objStats)) att.winCount += 1; if (attackTrainer(1, ran, _t2, _trainerLevel, att.objClassId, objStats)) att.winCount += 1; if (attackTrainer(2, ran, _t3, _trainerLevel, att.objClassId, objStats)) att.winCount += 1; (att.winExp, att.loseExp) = getGainExp(att.objLevel, _trainerLevel); EtheremonGateway gateway = EtheremonGateway(worldContract); gateway.increaseMonsterExp(_objId, att.winCount * att.winExp + (3 - att.winCount) * att.loseExp); TrainingLog storage trainingLog = trainees[msg.sender]; trainingLog.trainers[0] = _t1; trainingLog.trainers[1] = _t2; trainingLog.trainers[2] = _t3; trainingLog.trainerLevel = _trainerLevel; trainingLog.objId = _objId; trainingLog.objLevel = att.objLevel; trainingLog.ran = ran; } function getTrainingLog(address _trainee) constant external returns(uint8, uint8, uint8, uint64, uint8, uint8, uint8) { TrainingLog memory trainingLog = trainees[_trainee]; return (trainingLog.trainers[0], trainingLog.trainers[1], trainingLog.trainers[2], trainingLog.objId, trainingLog.trainerLevel, trainingLog.objLevel, trainingLog.ran); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"dataContract","outputs":[{"name":"","type":"address"}],"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":false,"inputs":[{"name":"_gymFee","type":"uint256"},{"name":"_maxTrainerLevel","type":"uint8"},{"name":"_maxRandomRound","type":"uint8"},{"name":"_typeBuffPercentage","type":"uint8"},{"name":"_minHpDeducted","type":"uint8"},{"name":"_expPercentage","type":"uint8"}],"name":"setConfig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"worldContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_attack","type":"uint16"},{"name":"_specialAttack","type":"uint16"},{"name":"_defense","type":"uint16"},{"name":"_specialDefense","type":"uint16"},{"name":"_lucky","type":"bool"}],"name":"calHpDeducted","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId1","type":"uint32"},{"name":"_classId2","type":"uint32"},{"name":"_classId3","type":"uint32"},{"name":"_classId4","type":"uint32"}],"name":"fastSetCacheClassInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_trainerId","type":"uint8"},{"name":"_classId","type":"uint32"},{"name":"_s0","type":"uint8"},{"name":"_s1","type":"uint8"},{"name":"_s2","type":"uint8"},{"name":"_s3","type":"uint8"},{"name":"_s4","type":"uint8"},{"name":"_s5","type":"uint8"}],"name":"setGymTrainer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"genLevelExpGain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dataContract","type":"address"},{"name":"_worldContract","type":"address"}],"name":"setContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"expPercentage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type1","type":"uint8"},{"name":"_type2","type":"uint8"}],"name":"setTypeAdvantage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"genLevelExp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setTypeAdvantages","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_level","type":"uint8"},{"name":"_exp","type":"uint32"}],"name":"setLevelExpGain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_objId","type":"uint64"}],"name":"getObjInfo","outputs":[{"name":"classId","type":"uint32"},{"name":"trainee","type":"address"},{"name":"level","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_trainerId","type":"uint8"}],"name":"getTrainerInfo","outputs":[{"name":"","type":"uint32"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintaining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint8"},{"name":"_ran","type":"uint8"},{"name":"_aStats","type":"uint16[6]"},{"name":"_bStats","type":"uint16[6]"}],"name":"attack","outputs":[{"name":"win","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalModerators","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_classId","type":"uint32"}],"name":"getCacheClassSize","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","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":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTrainer","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"gymTrainers","outputs":[{"name":"classId","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gymFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"typeBuffPercentage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_classId","type":"uint32"}],"name":"setCacheClassInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"exp","type":"uint32"}],"name":"getLevel","outputs":[{"name":"","type":"uint8"}],"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":"_trainee","type":"address"}],"name":"getTrainingLog","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint64"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"xLevel","type":"uint8"},{"name":"yLevel","type":"uint8"}],"name":"getGainExp","outputs":[{"name":"winExp","type":"uint32"},{"name":"loseExp","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"trainees","outputs":[{"name":"trainerLevel","type":"uint8"},{"name":"objId","type":"uint64"},{"name":"objLevel","type":"uint8"},{"name":"ran","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_objId","type":"uint64"},{"name":"_trainerLevel","type":"uint8"},{"name":"_t1","type":"uint8"},{"name":"_t2","type":"uint8"},{"name":"_t3","type":"uint8"}],"name":"startTraining","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minHpDeducted","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint8"},{"name":"_ran","type":"uint8"},{"name":"_trainerId","type":"uint8"},{"name":"_trainerLevel","type":"uint8"},{"name":"_objClassId","type":"uint32"},{"name":"_objStats","type":"uint16[6]"}],"name":"attackTrainer","outputs":[{"name":"result","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxTrainerLevel","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"STAT_COUNT","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxRandomRound","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"maxRan","type":"uint8"},{"name":"index","type":"uint8"}],"name":"getRandom","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","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":false,"inputs":[],"name":"presetGymTrainer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_dataContract","type":"address"},{"name":"_worldContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]
Contract Creation Code
60606040526000805460a060020a61ffff02191690556002805460ff1990811660011790915566038d7ea4c68000600955600a8054600592169190911762ffff001916620400001763ff000000191663140000001764ff000000001916640a000000001765ff0000000000191665460000000000179055341561008157600080fd5b60405160408061390e833981016040528080519190602001805160008054600160a060020a03338116600160a060020a031992831617909255600b80549683169690911695909517909455600a805494909116660100000000000002603060020a60d060020a031990941693909317909255505061380a806101046000396000f3006060604052600436106101f55763ffffffff60e060020a6000350416630d66881881146101fa57806314d0f1ba146102295780631576fc551461025c578063187584801461029257806320046e91146102a557806325ae9c97146102ed578063278f9f6e1461031b57806327979b35146103625780632bf6e0a5146103755780632c2da3cf1461039a5780633171cec4146103c357806333ced321146103e257806333d24dc4146103f55780633d5dbaed146104085780634538bc951461042a57806348e889ed1461048057806348ef5aa8146104e757806349d165f6146104ff5780634efb023e1461056e578063500e429714610581578063522f6815146105c15780636c81fd6d146105e35780637216ee0014610602578063830146cf14610615578063838985d714610647578063891fe1031461066c5780638da5cb5b1461067f5780638fd8f78314610692578063b2cad9b7146106ae578063b85d6275146106ca578063b952bb30146106e9578063bb9ea07c14610758578063bda7b1cb14610798578063bfcece9f146107f0578063cfa830791461081d578063d60ef60214610830578063d8819e0a1461088d578063d98e14bd146108a0578063ebfa3c1b146108b3578063ed30e558146108c6578063ee4e4416146108e5578063f2853292146108f8578063fb214f4c14610917575b600080fd5b341561020557600080fd5b61020d61092a565b604051600160a060020a03909116815260200160405180910390f35b341561023457600080fd5b610248600160a060020a0360043516610939565b604051901515815260200160405180910390f35b341561026757600080fd5b61029060043560ff60243581169060443581169060643581169060843581169060a4351661094e565b005b341561029d57600080fd5b61020d610a0a565b34156102b057600080fd5b6102d661ffff600435811690602435811690604435811690606435166084351515610a23565b60405161ffff909116815260200160405180910390f35b34156102f857600080fd5b61029063ffffffff60043581169060243581169060443581169060643516610ae7565b341561032657600080fd5b61029060ff60043581169063ffffffff602435169060443581169060643581169060843581169060a43581169060c43581169060e43516610b8f565b341561036d57600080fd5b610290610cd1565b341561038057600080fd5b610290600160a060020a0360043581169060243516610ed0565b34156103a557600080fd5b6103ad610f76565b60405160ff909116815260200160405180910390f35b34156103ce57600080fd5b61029060ff60043581169060243516610f88565b34156103ed57600080fd5b610290610ff0565b341561040057600080fd5b61029061109e565b341561041357600080fd5b61029060ff6004351663ffffffff602435166113c4565b341561043557600080fd5b61044a67ffffffffffffffff60043516611437565b60405163ffffffff9093168352600160a060020a03909116602083015260ff166040808301919091526060909101905180910390f35b341561048b57600080fd5b61049960ff60043516611529565b60405163ffffffff909716875260ff958616602088015293851660408088019190915292851660608701529084166080860152831660a0850152911660c083015260e0909101905180910390f35b34156104f257600080fd5b6102906004351515611613565b341561050a57600080fd5b61024860ff6004803582169160243516906101046044600660c06040519081016040529190828260c080828437820191505050505091908060c001906006806020026040519081016040529190828260c08082843750939550611641945050505050565b341561057957600080fd5b6102d66117fe565b341561058c57600080fd5b61059d63ffffffff60043516611820565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156105cc57600080fd5b610290600160a060020a0360043516602435611845565b34156105ee57600080fd5b610290600160a060020a03600435166118d7565b341561060d57600080fd5b6103ad611981565b341561062057600080fd5b61062e60ff6004351661198f565b60405163ffffffff909116815260200160405180910390f35b341561065257600080fd5b61065a6119a7565b60405190815260200160405180910390f35b341561067757600080fd5b6103ad6119ad565b341561068a57600080fd5b61020d6119bd565b341561069d57600080fd5b61029063ffffffff600435166119cc565b34156106b957600080fd5b6103ad63ffffffff60043516611f9f565b34156106d557600080fd5b610290600160a060020a0360043516612002565b34156106f457600080fd5b610708600160a060020a03600435166120ac565b60405160ff9788168152958716602087015293861660408087019190915267ffffffffffffffff90931660608601529085166080850152841660a0840152921660c082015260e001905180910390f35b341561076357600080fd5b61077760ff600435811690602435166121c5565b60405163ffffffff9283168152911660208201526040908101905180910390f35b34156107a357600080fd5b6107b7600160a060020a0360043516612283565b60405160ff948516815267ffffffffffffffff909316602084015290831660408084019190915292166060820152608001905180910390f35b61029067ffffffffffffffff6004351660ff602435811690604435811690606435811690608435166122cd565b341561082857600080fd5b6103ad61282e565b341561083b57600080fd5b61024860ff60048035821691602435811691604435821691606435169063ffffffff608435169061016460a4600660c06040519081016040529190828260c0808284375093955061283f945050505050565b341561089857600080fd5b6103ad612b06565b34156108ab57600080fd5b6103ad612b0f565b34156108be57600080fd5b6103ad612b14565b34156108d157600080fd5b6103ad60ff60043581169060243516612b23565b34156108f057600080fd5b610248612b71565b341561090357600080fd5b610290600160a060020a0360043516612b7a565b341561092257600080fd5b610290612bd1565b600b54600160a060020a031681565b60016020526000908152604090205460ff1681565b60005433600160a060020a03908116911614806109895750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561099457600080fd5b600995909555600a805460ff191660ff9586161762ff0000191662010000948616949094029390931763ff00000019166301000000928516929092029190911764ff000000001916640100000000918416919091021765ff00000000001916650100000000009290931691909102919091179055565b600a5466010000000000009004600160a060020a031681565b60008060008315610a4957600a61ffff600d8a0216049750600a61ffff600d8902160496505b610a5e88600461ffff60038a02165b04613360565b9150610a7387600461ffff6003890216610a58565b600a54909150640100000000900460ff1661ffff8316108015610aa65750600a54640100000000900460ff1661ffff8216105b15610ac057600a54640100000000900460ff169250610adc565b8061ffff168261ffff161115610ad857819250610adc565b8092505b505095945050505050565b60005433600160a060020a0390811691161480610b225750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610b2d57600080fd5b600b54600160a060020a03161515610b4457600080fd5b600a5466010000000000009004600160a060020a03161515610b6557600080fd5b610b6e846119cc565b610b77836119cc565b610b80826119cc565b610b89816119cc565b50505050565b6000805433600160a060020a0390811691161480610bcb5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610bd657600080fd5b5060ff88166000908152600360205260409020805463ffffffff161515610c1757600a805460ff61010080830482166001019091160261ff00199091161790555b805463ffffffff191663ffffffff891617815560018101805460ff191660ff8981169190911761ff001916610100898316021762ff0000191662010000888316021763ff000000191663010000009187169190910217815583906004602091828204019190066101000a81548160ff021916908360ff16021790555081816001016005600681101515610ca657fe5b602091828204019190066101000a81548160ff021916908360ff160217905550505050505050505050565b60005433600160a060020a0390811691161480610d0c5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610d1757600080fd5b60086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f805463ffffffff19908116601f179091557f6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea90418054821660211790557f625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d264558054821660221790557f9321edea6e3be4df59a344b401fab4f888b556fda1f954244cff9204bad624b88054821660241790557f91238f30f286c9a1c6e901c4eda3b214c381c846e3dbe48df95c21488e8e1fdb8054821660261790557f13acf3fc7bed94759963f076d5d3443d88732026bffc8253bdf4a6e65f21ecc58054821660281790557f24cd397636bedc6cf9b490d0edd57c769c19b367fb7d5c2344ae1ddc7d21c14480548216602a1790557fe4c2e8be66af8dd2d277000f4f830a10546f8b14e45cd850b875c98ba0f0d2cd80548216602c1790557f82c9e868e45873bb5a4f47c09e14a12f6a6314e13aabd611e4374762bb4e8b3680548216602e179055600a6000527f586689db7536874b78a6eac0f58556a56a106985743f7c16a699b27bb02f88bd80549091166030179055565b60005433600160a060020a0390811691161480610f0b5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610f1657600080fd5b600b8054600160a060020a0393841673ffffffffffffffffffffffffffffffffffffffff19909116179055600a80549190921666010000000000000279ffffffffffffffffffffffffffffffffffffffff00000000000019909116179055565b600a5465010000000000900460ff1681565b60005433600160a060020a0390811691161480610fc35750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610fce57600080fd5b60ff9182166000908152600560205260409020805460ff191691909216179055565b600080548190819033600160a060020a03908116911614806110305750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561103b57600080fd5b506001915060649050805b606460ff8416116110995760ff83166000908152600760205260409020805463ffffffff191663ffffffff83811691909117909155600190930192600a90600b8402160460050191508181019050611046565b505050565b60005433600160a060020a03908116911614806110d95750600160a060020a03331660009081526001602081905260409091205460ff161515145b15156110e457600080fd5b600560208190527f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b805460ff19908116600e179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a8054821660101790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054821660081790557f3eec716f11ba9e820c81ca75eb978ffb45831ef8b7a53e5e422c26008e1ca6d58054821660091790557f458b30c2d72bfd2c6317304a4594ecbafe5f729d3111b65fdc3a33bd48e5432d8054821660021790557f069400f22b28c6c362558d92f66163cec5671cba50b61abd2eecfcd0eaeac51880548216600b1790557feddb6698d7c569ff62ff64f1f1492bf14a54594835ba0faac91f84b4f5d814608054821660031790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805482169092179091557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe180548216600f1790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054821660129081179091557ff907e7e6656fa73566b18c1215272fe9fca2c55c552e62c923e21e000ac4b4e68054831660071790557f03145c75015e7a856ecd94c41432ef3cb669d6360af23433588937fefdfac8258054831660061790557f783638979e3582b3ffd6d53fc06c949ac31d1ac75a5e2c3531fbe1f91045eb538054831660111790557f58f00e8ecc6f5419941dd0bafec65a4cc188d31713fb1fe224257460930df8af80548316600d1790557f8b32256db898364c465749decac34aee435952ffe1739257aa5b0235e266d9c580548316600c1790557fb4e18992ad424cdedc46668609f2bafcf665a8d99577618d5923c69264d9cf5f8054831660011790556000527fd1ccbf1f9f869f51cd81e6f099f905636b057f682c706fe990614b112051692880549091166004179055565b60005433600160a060020a03908116911614806113ff5750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561140a57600080fd5b60ff919091166000908152600860205260409020805463ffffffff191663ffffffff909216919091179055565b600080600080611445613542565b600b54600160a060020a0316915081630720246087600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b15156114a257600080fd5b6102c65a03f115156114b357600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a0870152166080850190815267ffffffffffffffff9093168452909650945061151f9051611f9f565b9496939550505050565b600080600080600080600061153c61358e565b60ff8916600090815260036020526040908190209080519081016040908152825463ffffffff1682529091906020830190600183019060069060c09051908101604052919060c08301826000855b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161158a57905050505050508152505090508060000151816020015151826020015160200151836020015160400151846020015160600151856020015160800151866020015160a00151959f949e50929c50909a509850965090945092505050565b60005433600160a060020a0390811691161461162e57600080fd5b6002805460ff1916911515919091179055565b600080600080600a60029054906101000a900460ff16880260ff168760ff16101561167957600a5462010000900460ff16965061168c565b600a5462010000900460ff168802909603955b60009250855191508451905060a085015161ffff1660a087015161ffff16111561176f575b600a5462010000900460ff1661ffff84161080156116d3575060008261ffff16115b80156116e3575060008161ffff16115b1561176a57600261ffff84160661ffff166000141561173a576117338161172e8860015b602002015160608a015160408a01518a60045b60200201518d60ff168a61ffff1614610a23565b613360565b905061175f565b61175c8261172e8760015b6020020151606089015160408b01518b600461171a565b91505b6001909201916116b1565b6117ea565b600a5462010000900460ff1661ffff8416108015611791575060008261ffff16115b80156117a1575060008161ffff16115b156117ea57600261ffff84160661ffff16156117cd576117c68161172e886001611707565b90506117df565b6117dc8261172e876001611745565b91505b60019092019161176f565b61ffff908116911610159695505050505050565b60005474010000000000000000000000000000000000000000900461ffff1681565b63ffffffff166000908152600660205260409020805460018201546002909201549092565b60005433600160a060020a03908116911614806118805750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561188b57600080fd5b30600160a060020a0316318111156118a257600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f1935050505015156118d357600080fd5b5050565b60005433600160a060020a039081169116146118f257600080fd5b600160a060020a03811660009081526001602052604090205460ff16151561197e57600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b600a54610100900460ff1681565b60036020526000908152604090205463ffffffff1681565b60095481565b600a546301000000900460ff1681565b600054600160a060020a031681565b6000806000806119da6135ae565b6119e26135ae565b6119ea6135ae565b60005433600160a060020a0390811691161480611a255750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611a3057600080fd5b600b54600160a060020a03161515611a4757600080fd5b600a5466010000000000009004600160a060020a03161515611a6857600080fd5b600b54600a5463ffffffff8a16600081815260066020526040808220600160a060020a039586169c5066010000000000009094049094169950975090955088916341b0eb53918891829051602001526040518363ffffffff1660e060020a02815260040180836004811115611ad957fe5b60ff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050602060405180830381600087803b1515611b1857600080fd5b6102c65a03f11515611b2957600080fd5b50505060405180519050945084604051805910611b435750595b908082528060200260200182016040525092505b6000851115611c345786600160a060020a03166362b21ad760008a63ffffffff16600189036000604051602001526040518463ffffffff1660e060020a02815260040180846004811115611ba757fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611bed57600080fd5b6102c65a03f11515611bfe57600080fd5b50505060405180519050836001870381518110611c1757fe5b60ff90921660209283029091019091015260001990940193611b57565b83838051611c469291602001906135c0565b5086600160a060020a03166341b0eb5360018a63ffffffff166000604051602001526040518363ffffffff1660e060020a02815260040180836004811115611c8a57fe5b60ff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050602060405180830381600087803b1515611cc957600080fd5b6102c65a03f11515611cda57600080fd5b50505060405180519050945084604051805910611cf45750595b908082528060200260200182016040525091505b6000851115611de55786600160a060020a03166362b21ad760018a63ffffffff16600189036000604051602001526040518463ffffffff1660e060020a02815260040180846004811115611d5857fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611d9e57600080fd5b6102c65a03f11515611daf57600080fd5b50505060405180519050826001870381518110611dc857fe5b60ff90921660209283029091019091015260001990940193611d08565b60018401828051611dfa9291602001906135c0565b5085600160a060020a03166388e9abb689600080604051602001526040518363ffffffff1660e060020a028152600401808363ffffffff1663ffffffff168152602001826001811115611e4957fe5b60ff16815260200192505050602060405180830381600087803b1515611e6e57600080fd5b6102c65a03f11515611e7f57600080fd5b50505060405180519050945084604051805910611e995750595b908082528060200260200182016040525090505b6000851115611f7f5785600160a060020a0316635b626339896000600189036000604051602001526040518463ffffffff1660e060020a028152600401808463ffffffff1663ffffffff168152602001836001811115611f0957fe5b60ff1681526020018281526020019350505050602060405180830381600087803b1515611f3557600080fd5b6102c65a03f11515611f4657600080fd5b50505060405180519050816001870381518110611f5f57fe5b63ffffffff90921660209283029091019091015260001990940193611ead565b60028401818051611f94929160200190613666565b505050505050505050565b600060016064825b8160ff168360ff161015611ff957600260ff848401160460ff811660009081526007602052604090205490915063ffffffff9081169086161015611fed57809150611ff4565b8060010192505b611fa7565b50909392505050565b60005433600160a060020a0390811691161461201d57600080fd5b600160a060020a03811660009081526001602081905260409091205460ff161515141561197e57600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b60008060008060008060006120bf613711565b600160a060020a038916600090815260046020526040908190209060a09051908101604052908160008201600380602002604051908101604052919060608301826000855b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411612104575050509284525050506001919091015460ff8082166020840152610100820467ffffffffffffffff16604084015269010000000000000000008204811660608401526a01000000000000000000009091041660809091015290508051518151602001518251604001518360400151846020015185606001518660800151959f949e50929c50909a509850965090945092505050565b600a5460ff828116600081815260086020526040812054606465010000000000909504841663ffffffff9182160216939093049291851611156122715782600a0160ff168460ff16111561221c5760059150612271565b82840360ff1660020a63ffffffff1683850360ff1660030a63ffffffff1681151561224357fe5b0463ffffffff168263ffffffff1681151561225a57fe5b04915060058263ffffffff16101561227157600591505b5092600363ffffffff85160492509050565b60046020526000908152604090206001015460ff8082169167ffffffffffffffff61010082041691690100000000000000000082048116916a010000000000000000000090041684565b6122d5613725565b60006122df61375a565b60025460009081908190819060ff16156122f857600080fd5b600b54600160a060020a0316151561230f57600080fd5b600a5466010000000000009004600160a060020a0316151561233057600080fd5b600a5460ff908116908c16111561234657600080fd5b600954341461235457600080fd5b8860ff168a60ff16148061236d57508760ff168a60ff16145b8061237d57508760ff168960ff16145b1561238757600080fd5b60ff8a161580612398575060ff8916155b806123a4575060ff8816155b806123bc5750600a5460ff6101009091048116908b16115b806123d45750600a5460ff6101009091048116908a16115b806123ec5750600a5460ff6101009091048116908916115b156123f657600080fd5b6123ff8c611437565b60ff1660408a0152600160a060020a03166020890190815263ffffffff909116885251600160a060020a031633600160a060020a031614151561244157600080fd5b600b5460009650600160a060020a031693505b60068610156125255783600160a060020a03166362b21ad760038e896000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561249b57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156124e157600080fd5b6102c65a03f115156124f257600080fd5b505050604051805160ff16905085876006811061250b57fe5b61ffff909216602092909202015260019590950194612454565b600095505b60066000885163ffffffff1681526020810191909152604001600020600101548610156125d2576125ab60066000895163ffffffff168152602081019190915260400160002060010180548890811061257f57fe5b600091825260209182902082820401549190066101000a900460ff16604089015160030260ff16613385565b8587600681106125b757fe5b6020020181815161ffff91011690525060019095019461252a565b600060608801819052600a546125f89160036201000090920460ff169190910290612b23565b925061260a6000848c8e8b518a61283f565b15612620576001876060018181510160ff169052505b6126306001848b8e8b518a61283f565b15612646576001876060018181510160ff169052505b6126566002848a8e8b518a61283f565b1561266c576001876060018181510160ff169052505b61267a87604001518c6121c5565b63ffffffff90811660a08a0190815291166080890152600a5466010000000000009004600160a060020a031692508290635643a711908e90518a6060015160030360ff16028a608001518b6060015160ff16020160405163ffffffff84811660e060020a02825267ffffffffffffffff93909316600482015291166024820152604401600060405180830381600087803b151561271657600080fd5b6102c65a03f1151561272757600080fd5b50505033600160a060020a03166000908152600460205260409020805460ff8b81166101000261ff0019918e1660ff199093169290921716178155905087816002602091828204019190066101000a81548160ff021916908360ff1602179055508a8160010160006101000a81548160ff021916908360ff1602179055508b8160010160016101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508660400151600191909101805469ff0000000000000000001916690100000000000000000060ff93841602176aff0000000000000000000019166a010000000000000000000094909216939093021790915550505050505050505050565b600a54640100000000900460ff1681565b600061284961358e565b61285161375a565b60ff871660009081526003602052604080822082918291829182919080519081016040908152825463ffffffff1682529091906020830190600183019060069060c09051908101604052919060c08301826000855b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116128a6575050509290935250929950600097505050505b600685101561292c57866020015185600681106128fe57fe5b602002015160ff1686866006811061291257fe5b61ffff9092166020929092020152600194909401936128e5565b600094505b60066000885163ffffffff1681526020810191909152604001600020600101548510156129d6576129af60066000895163ffffffff168152602081019190915260400160002060010180548790811061298657fe5b6000918252602091829020828204015460ff929091066101000a900481169060038e0216613385565b8686600681106129bb57fe5b6020020181815161ffff910116905250600190940193612931565b6129e18a88516133b0565b909450925060208901519150606089015190508315612a6457600a546064906301000000900460ff1660208b01510261ffff16811515612a1d57fe5b0460208a018181510161ffff16905250600a546064906301000000900460ff168a600360200201510261ffff16811515612a5357fe5b0460608a018181510161ffff169052505b8215612ad457600a546064906301000000900460ff1660208801510261ffff16811515612a8d57fe5b04602087018181510161ffff16905250600a546064906301000000900460ff1687600360200201510261ffff16811515612ac357fe5b04606087018181510161ffff169052505b612ae08e8e8b89611641565b61ffff92831660208b0152911660609098019790975250949a9950505050505050505050565b600a5460ff1681565b600681565b600a5462010000900460ff1681565b6000600019430140815b8360ff168160ff16108015612b45575060068160ff16105b15612b595761010082049150600101612b2d565b8460ff1682811515612b6757fe5b0695945050505050565b60025460ff1681565b60005433600160a060020a03908116911614612b9557600080fd5b600160a060020a0381161561197e5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b60008060008060008060008060008060009054906101000a9004600160a060020a0316600160a060020a031633600160a060020a03161480612c315750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515612c3c57600080fd5b600160005260036020527fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c8054600c63ffffffff199091161781557fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054d805460ff191660551761ff001916615f001762ff00001916624100001763ff000000191663320000001764ff0000000019166432000000001781559099506032906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556002600052600390527fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d805463ffffffff1916600f1781557fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4e8054603260ff199091161761ff0019166137001762ff00001916625500001763ff000000191663550000001764ff000000001916642800000000178155909850604b906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556003600081905290527fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af805463ffffffff191660081781557fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495b08054606e60ff199091161761ff001916613c001762ff00001916622800001763ff0000001916633c0000001764ff00000000191664280000000017815590975060289060056020808204929092018054918390066101000a60ff818102199093169490921691909102929092179091556004600081905260039091527f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe93772465805463ffffffff191690911781557f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe93772466805460ff191660361761ff0019166145001762ff00001916623a00001763ff0000001916634b0000001764ff000000001916644b000000001781559096506046906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556005600081905260039091527f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b465942250805463ffffffff191660061781557f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b4659422518054603260ff199091161761ff0019166132001762ff00001916623200001763ff000000191663690000001764ff000000001916643700000000178155909650605f91602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556006600052600390527fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f3805463ffffffff1916600d1781557fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f48054603760ff199091161761ff001916615a001762ff00001916625f00001763ff0000001916632d0000001764ff00000000191664230000000017815590945060239060056020808204929092018054918390066101000a60ff818102199093169490921691909102929092179091556007600081905260039091527ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd2805463ffffffff191690911781557ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd3805460ff191660551761ff001916613c001762ff00001916624900001763ff0000001916634b0000001764ff0000000019166450000000001781559093506032906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556008600052600390527f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbe805463ffffffff191660181781557f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbf8054608c60ff199091161761ff0019166187001762ff00001916624600001763ff0000001916634d0000001764ff000000001916645a000000001781559092506032906005602080820492909201805460ff948516928490066101000a928302949092021990911692909217909155600960005260039052507f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb458805463ffffffff191660101781557f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb4598054604660ff199091161761ff0019166169001762ff00001916625000001763ff0000001916633c0000001764ff000000001916645000000000178155605a9060056020808204909201805460ff948516939092066101000a9283029390920219169190911790555050600a805461090061ff001990911617905550505050505050565b60008161ffff168361ffff16111561337b575080820361337f565b5060005b92915050565b60008282028315806133a1575082848281151561339e57fe5b04145b15156133a957fe5b9392505050565b60008080805b63ffffffff8616600090815260066020526040902054821015613539575060005b63ffffffff851660009081526006602052604090205481101561352e5763ffffffff8516600090815260066020526040902080548290811061341557fe5b60009182526020808320818304015463ffffffff8a16845260068252604084208054929093066101000a900460ff169260059290918690811061345457fe5b60009182526020808320818304015460ff928290066101000a900482168452830193909352604090910190205416141561348d57600193505b63ffffffff861660009081526006602052604090208054839081106134ae57fe5b60009182526020808320818304015463ffffffff8916845260068252604084208054929093066101000a900460ff16926005929091859081106134ed57fe5b60009182526020808320818304015460ff928290066101000a900482168452830193909352604090910190205416141561352657600192505b6001016133d7565b6001909101906133b6565b50509250929050565b6101006040519081016040908152600080835260208301819052908201526060810161356c6135ae565b8152600060208201819052604082018190526060820181905260809091015290565b60e060405190810160405260008152602081016135a961375a565b905290565b60206040519081016040526000815290565b82805482825590600052602060002090601f016020900481019282156136565791602002820160005b8382111561362757835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026135e9565b80156136545782816101000a81549060ff0219169055600101602081600001049283019260010302613627565b505b50613662929150613782565b5090565b828054828255906000526020600020906007016008900481019282156137055791602002820160005b838211156136d357835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261368f565b80156137035782816101000a81549063ffffffff02191690556004016020816003010492830192600103026136d3565b505b506136629291506137a3565b60e06040519081016040528061356c6137c4565b60c06040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a082015290565b60c06040519081016040526006815b6000815260001990910190602001816137695790505090565b6137a091905b8082111561366257805460ff19168155600101613788565b90565b6137a091905b8082111561366257805463ffffffff191681556001016137a9565b6060604051908101604052600081526002602082016137695600a165627a7a72305820aa58eb55d185b351c219eabf73ca8ffb70e5a24083eea4cdb0a2b1b4642160aa0029000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000001fc7bd85293f3982f40d52698df8d26be89360d6
Deployed Bytecode
0x6060604052600436106101f55763ffffffff60e060020a6000350416630d66881881146101fa57806314d0f1ba146102295780631576fc551461025c578063187584801461029257806320046e91146102a557806325ae9c97146102ed578063278f9f6e1461031b57806327979b35146103625780632bf6e0a5146103755780632c2da3cf1461039a5780633171cec4146103c357806333ced321146103e257806333d24dc4146103f55780633d5dbaed146104085780634538bc951461042a57806348e889ed1461048057806348ef5aa8146104e757806349d165f6146104ff5780634efb023e1461056e578063500e429714610581578063522f6815146105c15780636c81fd6d146105e35780637216ee0014610602578063830146cf14610615578063838985d714610647578063891fe1031461066c5780638da5cb5b1461067f5780638fd8f78314610692578063b2cad9b7146106ae578063b85d6275146106ca578063b952bb30146106e9578063bb9ea07c14610758578063bda7b1cb14610798578063bfcece9f146107f0578063cfa830791461081d578063d60ef60214610830578063d8819e0a1461088d578063d98e14bd146108a0578063ebfa3c1b146108b3578063ed30e558146108c6578063ee4e4416146108e5578063f2853292146108f8578063fb214f4c14610917575b600080fd5b341561020557600080fd5b61020d61092a565b604051600160a060020a03909116815260200160405180910390f35b341561023457600080fd5b610248600160a060020a0360043516610939565b604051901515815260200160405180910390f35b341561026757600080fd5b61029060043560ff60243581169060443581169060643581169060843581169060a4351661094e565b005b341561029d57600080fd5b61020d610a0a565b34156102b057600080fd5b6102d661ffff600435811690602435811690604435811690606435166084351515610a23565b60405161ffff909116815260200160405180910390f35b34156102f857600080fd5b61029063ffffffff60043581169060243581169060443581169060643516610ae7565b341561032657600080fd5b61029060ff60043581169063ffffffff602435169060443581169060643581169060843581169060a43581169060c43581169060e43516610b8f565b341561036d57600080fd5b610290610cd1565b341561038057600080fd5b610290600160a060020a0360043581169060243516610ed0565b34156103a557600080fd5b6103ad610f76565b60405160ff909116815260200160405180910390f35b34156103ce57600080fd5b61029060ff60043581169060243516610f88565b34156103ed57600080fd5b610290610ff0565b341561040057600080fd5b61029061109e565b341561041357600080fd5b61029060ff6004351663ffffffff602435166113c4565b341561043557600080fd5b61044a67ffffffffffffffff60043516611437565b60405163ffffffff9093168352600160a060020a03909116602083015260ff166040808301919091526060909101905180910390f35b341561048b57600080fd5b61049960ff60043516611529565b60405163ffffffff909716875260ff958616602088015293851660408088019190915292851660608701529084166080860152831660a0850152911660c083015260e0909101905180910390f35b34156104f257600080fd5b6102906004351515611613565b341561050a57600080fd5b61024860ff6004803582169160243516906101046044600660c06040519081016040529190828260c080828437820191505050505091908060c001906006806020026040519081016040529190828260c08082843750939550611641945050505050565b341561057957600080fd5b6102d66117fe565b341561058c57600080fd5b61059d63ffffffff60043516611820565b60405180848152602001838152602001828152602001935050505060405180910390f35b34156105cc57600080fd5b610290600160a060020a0360043516602435611845565b34156105ee57600080fd5b610290600160a060020a03600435166118d7565b341561060d57600080fd5b6103ad611981565b341561062057600080fd5b61062e60ff6004351661198f565b60405163ffffffff909116815260200160405180910390f35b341561065257600080fd5b61065a6119a7565b60405190815260200160405180910390f35b341561067757600080fd5b6103ad6119ad565b341561068a57600080fd5b61020d6119bd565b341561069d57600080fd5b61029063ffffffff600435166119cc565b34156106b957600080fd5b6103ad63ffffffff60043516611f9f565b34156106d557600080fd5b610290600160a060020a0360043516612002565b34156106f457600080fd5b610708600160a060020a03600435166120ac565b60405160ff9788168152958716602087015293861660408087019190915267ffffffffffffffff90931660608601529085166080850152841660a0840152921660c082015260e001905180910390f35b341561076357600080fd5b61077760ff600435811690602435166121c5565b60405163ffffffff9283168152911660208201526040908101905180910390f35b34156107a357600080fd5b6107b7600160a060020a0360043516612283565b60405160ff948516815267ffffffffffffffff909316602084015290831660408084019190915292166060820152608001905180910390f35b61029067ffffffffffffffff6004351660ff602435811690604435811690606435811690608435166122cd565b341561082857600080fd5b6103ad61282e565b341561083b57600080fd5b61024860ff60048035821691602435811691604435821691606435169063ffffffff608435169061016460a4600660c06040519081016040529190828260c0808284375093955061283f945050505050565b341561089857600080fd5b6103ad612b06565b34156108ab57600080fd5b6103ad612b0f565b34156108be57600080fd5b6103ad612b14565b34156108d157600080fd5b6103ad60ff60043581169060243516612b23565b34156108f057600080fd5b610248612b71565b341561090357600080fd5b610290600160a060020a0360043516612b7a565b341561092257600080fd5b610290612bd1565b600b54600160a060020a031681565b60016020526000908152604090205460ff1681565b60005433600160a060020a03908116911614806109895750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561099457600080fd5b600995909555600a805460ff191660ff9586161762ff0000191662010000948616949094029390931763ff00000019166301000000928516929092029190911764ff000000001916640100000000918416919091021765ff00000000001916650100000000009290931691909102919091179055565b600a5466010000000000009004600160a060020a031681565b60008060008315610a4957600a61ffff600d8a0216049750600a61ffff600d8902160496505b610a5e88600461ffff60038a02165b04613360565b9150610a7387600461ffff6003890216610a58565b600a54909150640100000000900460ff1661ffff8316108015610aa65750600a54640100000000900460ff1661ffff8216105b15610ac057600a54640100000000900460ff169250610adc565b8061ffff168261ffff161115610ad857819250610adc565b8092505b505095945050505050565b60005433600160a060020a0390811691161480610b225750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610b2d57600080fd5b600b54600160a060020a03161515610b4457600080fd5b600a5466010000000000009004600160a060020a03161515610b6557600080fd5b610b6e846119cc565b610b77836119cc565b610b80826119cc565b610b89816119cc565b50505050565b6000805433600160a060020a0390811691161480610bcb5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610bd657600080fd5b5060ff88166000908152600360205260409020805463ffffffff161515610c1757600a805460ff61010080830482166001019091160261ff00199091161790555b805463ffffffff191663ffffffff891617815560018101805460ff191660ff8981169190911761ff001916610100898316021762ff0000191662010000888316021763ff000000191663010000009187169190910217815583906004602091828204019190066101000a81548160ff021916908360ff16021790555081816001016005600681101515610ca657fe5b602091828204019190066101000a81548160ff021916908360ff160217905550505050505050505050565b60005433600160a060020a0390811691161480610d0c5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610d1757600080fd5b60086020527fad67d757c34507f157cacfa2e3153e9f260a2244f30428821be7be64587ac55f805463ffffffff19908116601f179091557f6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea90418054821660211790557f625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d264558054821660221790557f9321edea6e3be4df59a344b401fab4f888b556fda1f954244cff9204bad624b88054821660241790557f91238f30f286c9a1c6e901c4eda3b214c381c846e3dbe48df95c21488e8e1fdb8054821660261790557f13acf3fc7bed94759963f076d5d3443d88732026bffc8253bdf4a6e65f21ecc58054821660281790557f24cd397636bedc6cf9b490d0edd57c769c19b367fb7d5c2344ae1ddc7d21c14480548216602a1790557fe4c2e8be66af8dd2d277000f4f830a10546f8b14e45cd850b875c98ba0f0d2cd80548216602c1790557f82c9e868e45873bb5a4f47c09e14a12f6a6314e13aabd611e4374762bb4e8b3680548216602e179055600a6000527f586689db7536874b78a6eac0f58556a56a106985743f7c16a699b27bb02f88bd80549091166030179055565b60005433600160a060020a0390811691161480610f0b5750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610f1657600080fd5b600b8054600160a060020a0393841673ffffffffffffffffffffffffffffffffffffffff19909116179055600a80549190921666010000000000000279ffffffffffffffffffffffffffffffffffffffff00000000000019909116179055565b600a5465010000000000900460ff1681565b60005433600160a060020a0390811691161480610fc35750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515610fce57600080fd5b60ff9182166000908152600560205260409020805460ff191691909216179055565b600080548190819033600160a060020a03908116911614806110305750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561103b57600080fd5b506001915060649050805b606460ff8416116110995760ff83166000908152600760205260409020805463ffffffff191663ffffffff83811691909117909155600190930192600a90600b8402160460050191508181019050611046565b505050565b60005433600160a060020a03908116911614806110d95750600160a060020a03331660009081526001602081905260409091205460ff161515145b15156110e457600080fd5b600560208190527f1471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b805460ff19908116600e179091557f89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a8054821660101790557fa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc08054821660081790557f3eec716f11ba9e820c81ca75eb978ffb45831ef8b7a53e5e422c26008e1ca6d58054821660091790557f458b30c2d72bfd2c6317304a4594ecbafe5f729d3111b65fdc3a33bd48e5432d8054821660021790557f069400f22b28c6c362558d92f66163cec5671cba50b61abd2eecfcd0eaeac51880548216600b1790557feddb6698d7c569ff62ff64f1f1492bf14a54594835ba0faac91f84b4f5d814608054821660031790557ffb33122aa9f93cc639ebe80a7bc4784c11e6053dde89c6f4f7e268c6a623da1e805482169092179091557fc0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe180548216600f1790557f40f28f99a40bc9f6beea1013afdbc3cdcc689eb76b82c4de06c0acf1e1932ed58054821660129081179091557ff907e7e6656fa73566b18c1215272fe9fca2c55c552e62c923e21e000ac4b4e68054831660071790557f03145c75015e7a856ecd94c41432ef3cb669d6360af23433588937fefdfac8258054831660061790557f783638979e3582b3ffd6d53fc06c949ac31d1ac75a5e2c3531fbe1f91045eb538054831660111790557f58f00e8ecc6f5419941dd0bafec65a4cc188d31713fb1fe224257460930df8af80548316600d1790557f8b32256db898364c465749decac34aee435952ffe1739257aa5b0235e266d9c580548316600c1790557fb4e18992ad424cdedc46668609f2bafcf665a8d99577618d5923c69264d9cf5f8054831660011790556000527fd1ccbf1f9f869f51cd81e6f099f905636b057f682c706fe990614b112051692880549091166004179055565b60005433600160a060020a03908116911614806113ff5750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561140a57600080fd5b60ff919091166000908152600860205260409020805463ffffffff191663ffffffff909216919091179055565b600080600080611445613542565b600b54600160a060020a0316915081630720246087600060405160e0015260405160e060020a63ffffffff841602815267ffffffffffffffff909116600482015260240160e060405180830381600087803b15156114a257600080fd5b6102c65a03f115156114b357600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190602001805160e08901525063ffffffff90811660c088015290811660a0870152166080850190815267ffffffffffffffff9093168452909650945061151f9051611f9f565b9496939550505050565b600080600080600080600061153c61358e565b60ff8916600090815260036020526040908190209080519081016040908152825463ffffffff1682529091906020830190600183019060069060c09051908101604052919060c08301826000855b825461010083900a900460ff1681526020600192830181810494850194909303909202910180841161158a57905050505050508152505090508060000151816020015151826020015160200151836020015160400151846020015160600151856020015160800151866020015160a00151959f949e50929c50909a509850965090945092505050565b60005433600160a060020a0390811691161461162e57600080fd5b6002805460ff1916911515919091179055565b600080600080600a60029054906101000a900460ff16880260ff168760ff16101561167957600a5462010000900460ff16965061168c565b600a5462010000900460ff168802909603955b60009250855191508451905060a085015161ffff1660a087015161ffff16111561176f575b600a5462010000900460ff1661ffff84161080156116d3575060008261ffff16115b80156116e3575060008161ffff16115b1561176a57600261ffff84160661ffff166000141561173a576117338161172e8860015b602002015160608a015160408a01518a60045b60200201518d60ff168a61ffff1614610a23565b613360565b905061175f565b61175c8261172e8760015b6020020151606089015160408b01518b600461171a565b91505b6001909201916116b1565b6117ea565b600a5462010000900460ff1661ffff8416108015611791575060008261ffff16115b80156117a1575060008161ffff16115b156117ea57600261ffff84160661ffff16156117cd576117c68161172e886001611707565b90506117df565b6117dc8261172e876001611745565b91505b60019092019161176f565b61ffff908116911610159695505050505050565b60005474010000000000000000000000000000000000000000900461ffff1681565b63ffffffff166000908152600660205260409020805460018201546002909201549092565b60005433600160a060020a03908116911614806118805750600160a060020a03331660009081526001602081905260409091205460ff161515145b151561188b57600080fd5b30600160a060020a0316318111156118a257600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f1935050505015156118d357600080fd5b5050565b60005433600160a060020a039081169116146118f257600080fd5b600160a060020a03811660009081526001602052604090205460ff16151561197e57600160a060020a03811660009081526001602081905260408220805460ff191682179055815461ffff7401000000000000000000000000000000000000000080830482169093011690910275ffff0000000000000000000000000000000000000000199091161790555b50565b600a54610100900460ff1681565b60036020526000908152604090205463ffffffff1681565b60095481565b600a546301000000900460ff1681565b600054600160a060020a031681565b6000806000806119da6135ae565b6119e26135ae565b6119ea6135ae565b60005433600160a060020a0390811691161480611a255750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515611a3057600080fd5b600b54600160a060020a03161515611a4757600080fd5b600a5466010000000000009004600160a060020a03161515611a6857600080fd5b600b54600a5463ffffffff8a16600081815260066020526040808220600160a060020a039586169c5066010000000000009094049094169950975090955088916341b0eb53918891829051602001526040518363ffffffff1660e060020a02815260040180836004811115611ad957fe5b60ff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050602060405180830381600087803b1515611b1857600080fd5b6102c65a03f11515611b2957600080fd5b50505060405180519050945084604051805910611b435750595b908082528060200260200182016040525092505b6000851115611c345786600160a060020a03166362b21ad760008a63ffffffff16600189036000604051602001526040518463ffffffff1660e060020a02815260040180846004811115611ba757fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611bed57600080fd5b6102c65a03f11515611bfe57600080fd5b50505060405180519050836001870381518110611c1757fe5b60ff90921660209283029091019091015260001990940193611b57565b83838051611c469291602001906135c0565b5086600160a060020a03166341b0eb5360018a63ffffffff166000604051602001526040518363ffffffff1660e060020a02815260040180836004811115611c8a57fe5b60ff1681526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050602060405180830381600087803b1515611cc957600080fd5b6102c65a03f11515611cda57600080fd5b50505060405180519050945084604051805910611cf45750595b908082528060200260200182016040525091505b6000851115611de55786600160a060020a03166362b21ad760018a63ffffffff16600189036000604051602001526040518463ffffffff1660e060020a02815260040180846004811115611d5857fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515611d9e57600080fd5b6102c65a03f11515611daf57600080fd5b50505060405180519050826001870381518110611dc857fe5b60ff90921660209283029091019091015260001990940193611d08565b60018401828051611dfa9291602001906135c0565b5085600160a060020a03166388e9abb689600080604051602001526040518363ffffffff1660e060020a028152600401808363ffffffff1663ffffffff168152602001826001811115611e4957fe5b60ff16815260200192505050602060405180830381600087803b1515611e6e57600080fd5b6102c65a03f11515611e7f57600080fd5b50505060405180519050945084604051805910611e995750595b908082528060200260200182016040525090505b6000851115611f7f5785600160a060020a0316635b626339896000600189036000604051602001526040518463ffffffff1660e060020a028152600401808463ffffffff1663ffffffff168152602001836001811115611f0957fe5b60ff1681526020018281526020019350505050602060405180830381600087803b1515611f3557600080fd5b6102c65a03f11515611f4657600080fd5b50505060405180519050816001870381518110611f5f57fe5b63ffffffff90921660209283029091019091015260001990940193611ead565b60028401818051611f94929160200190613666565b505050505050505050565b600060016064825b8160ff168360ff161015611ff957600260ff848401160460ff811660009081526007602052604090205490915063ffffffff9081169086161015611fed57809150611ff4565b8060010192505b611fa7565b50909392505050565b60005433600160a060020a0390811691161461201d57600080fd5b600160a060020a03811660009081526001602081905260409091205460ff161515141561197e57600160a060020a03166000908152600160205260408120805460ff19169055805475ffff0000000000000000000000000000000000000000198116740100000000000000000000000000000000000000009182900461ffff9081166000190116909102179055565b60008060008060008060006120bf613711565b600160a060020a038916600090815260046020526040908190209060a09051908101604052908160008201600380602002604051908101604052919060608301826000855b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411612104575050509284525050506001919091015460ff8082166020840152610100820467ffffffffffffffff16604084015269010000000000000000008204811660608401526a01000000000000000000009091041660809091015290508051518151602001518251604001518360400151846020015185606001518660800151959f949e50929c50909a509850965090945092505050565b600a5460ff828116600081815260086020526040812054606465010000000000909504841663ffffffff9182160216939093049291851611156122715782600a0160ff168460ff16111561221c5760059150612271565b82840360ff1660020a63ffffffff1683850360ff1660030a63ffffffff1681151561224357fe5b0463ffffffff168263ffffffff1681151561225a57fe5b04915060058263ffffffff16101561227157600591505b5092600363ffffffff85160492509050565b60046020526000908152604090206001015460ff8082169167ffffffffffffffff61010082041691690100000000000000000082048116916a010000000000000000000090041684565b6122d5613725565b60006122df61375a565b60025460009081908190819060ff16156122f857600080fd5b600b54600160a060020a0316151561230f57600080fd5b600a5466010000000000009004600160a060020a0316151561233057600080fd5b600a5460ff908116908c16111561234657600080fd5b600954341461235457600080fd5b8860ff168a60ff16148061236d57508760ff168a60ff16145b8061237d57508760ff168960ff16145b1561238757600080fd5b60ff8a161580612398575060ff8916155b806123a4575060ff8816155b806123bc5750600a5460ff6101009091048116908b16115b806123d45750600a5460ff6101009091048116908a16115b806123ec5750600a5460ff6101009091048116908916115b156123f657600080fd5b6123ff8c611437565b60ff1660408a0152600160a060020a03166020890190815263ffffffff909116885251600160a060020a031633600160a060020a031614151561244157600080fd5b600b5460009650600160a060020a031693505b60068610156125255783600160a060020a03166362b21ad760038e896000604051602001526040518463ffffffff1660e060020a0281526004018084600481111561249b57fe5b60ff1681526020018367ffffffffffffffff1667ffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156124e157600080fd5b6102c65a03f115156124f257600080fd5b505050604051805160ff16905085876006811061250b57fe5b61ffff909216602092909202015260019590950194612454565b600095505b60066000885163ffffffff1681526020810191909152604001600020600101548610156125d2576125ab60066000895163ffffffff168152602081019190915260400160002060010180548890811061257f57fe5b600091825260209182902082820401549190066101000a900460ff16604089015160030260ff16613385565b8587600681106125b757fe5b6020020181815161ffff91011690525060019095019461252a565b600060608801819052600a546125f89160036201000090920460ff169190910290612b23565b925061260a6000848c8e8b518a61283f565b15612620576001876060018181510160ff169052505b6126306001848b8e8b518a61283f565b15612646576001876060018181510160ff169052505b6126566002848a8e8b518a61283f565b1561266c576001876060018181510160ff169052505b61267a87604001518c6121c5565b63ffffffff90811660a08a0190815291166080890152600a5466010000000000009004600160a060020a031692508290635643a711908e90518a6060015160030360ff16028a608001518b6060015160ff16020160405163ffffffff84811660e060020a02825267ffffffffffffffff93909316600482015291166024820152604401600060405180830381600087803b151561271657600080fd5b6102c65a03f1151561272757600080fd5b50505033600160a060020a03166000908152600460205260409020805460ff8b81166101000261ff0019918e1660ff199093169290921716178155905087816002602091828204019190066101000a81548160ff021916908360ff1602179055508a8160010160006101000a81548160ff021916908360ff1602179055508b8160010160016101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508660400151600191909101805469ff0000000000000000001916690100000000000000000060ff93841602176aff0000000000000000000019166a010000000000000000000094909216939093021790915550505050505050505050565b600a54640100000000900460ff1681565b600061284961358e565b61285161375a565b60ff871660009081526003602052604080822082918291829182919080519081016040908152825463ffffffff1682529091906020830190600183019060069060c09051908101604052919060c08301826000855b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116128a6575050509290935250929950600097505050505b600685101561292c57866020015185600681106128fe57fe5b602002015160ff1686866006811061291257fe5b61ffff9092166020929092020152600194909401936128e5565b600094505b60066000885163ffffffff1681526020810191909152604001600020600101548510156129d6576129af60066000895163ffffffff168152602081019190915260400160002060010180548790811061298657fe5b6000918252602091829020828204015460ff929091066101000a900481169060038e0216613385565b8686600681106129bb57fe5b6020020181815161ffff910116905250600190940193612931565b6129e18a88516133b0565b909450925060208901519150606089015190508315612a6457600a546064906301000000900460ff1660208b01510261ffff16811515612a1d57fe5b0460208a018181510161ffff16905250600a546064906301000000900460ff168a600360200201510261ffff16811515612a5357fe5b0460608a018181510161ffff169052505b8215612ad457600a546064906301000000900460ff1660208801510261ffff16811515612a8d57fe5b04602087018181510161ffff16905250600a546064906301000000900460ff1687600360200201510261ffff16811515612ac357fe5b04606087018181510161ffff169052505b612ae08e8e8b89611641565b61ffff92831660208b0152911660609098019790975250949a9950505050505050505050565b600a5460ff1681565b600681565b600a5462010000900460ff1681565b6000600019430140815b8360ff168160ff16108015612b45575060068160ff16105b15612b595761010082049150600101612b2d565b8460ff1682811515612b6757fe5b0695945050505050565b60025460ff1681565b60005433600160a060020a03908116911614612b9557600080fd5b600160a060020a0381161561197e5760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b60008060008060008060008060008060009054906101000a9004600160a060020a0316600160a060020a031633600160a060020a03161480612c315750600160a060020a03331660009081526001602081905260409091205460ff161515145b1515612c3c57600080fd5b600160005260036020527fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c8054600c63ffffffff199091161781557fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054d805460ff191660551761ff001916615f001762ff00001916624100001763ff000000191663320000001764ff0000000019166432000000001781559099506032906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556002600052600390527fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d805463ffffffff1916600f1781557fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4e8054603260ff199091161761ff0019166137001762ff00001916625500001763ff000000191663550000001764ff000000001916642800000000178155909850604b906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556003600081905290527fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af805463ffffffff191660081781557fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495b08054606e60ff199091161761ff001916613c001762ff00001916622800001763ff0000001916633c0000001764ff00000000191664280000000017815590975060289060056020808204929092018054918390066101000a60ff818102199093169490921691909102929092179091556004600081905260039091527f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe93772465805463ffffffff191690911781557f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe93772466805460ff191660361761ff0019166145001762ff00001916623a00001763ff0000001916634b0000001764ff000000001916644b000000001781559096506046906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556005600081905260039091527f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b465942250805463ffffffff191660061781557f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b4659422518054603260ff199091161761ff0019166132001762ff00001916623200001763ff000000191663690000001764ff000000001916643700000000178155909650605f91602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556006600052600390527fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f3805463ffffffff1916600d1781557fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f48054603760ff199091161761ff001916615a001762ff00001916625f00001763ff0000001916632d0000001764ff00000000191664230000000017815590945060239060056020808204929092018054918390066101000a60ff818102199093169490921691909102929092179091556007600081905260039091527ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd2805463ffffffff191690911781557ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd3805460ff191660551761ff001916613c001762ff00001916624900001763ff0000001916634b0000001764ff0000000019166450000000001781559093506032906005602080820492909201805460ff948516928490066101000a9283029490920219909116929092179091556008600052600390527f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbe805463ffffffff191660181781557f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbf8054608c60ff199091161761ff0019166187001762ff00001916624600001763ff0000001916634d0000001764ff000000001916645a000000001781559092506032906005602080820492909201805460ff948516928490066101000a928302949092021990911692909217909155600960005260039052507f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb458805463ffffffff191660101781557f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb4598054604660ff199091161761ff0019166169001762ff00001916625000001763ff0000001916633c0000001764ff000000001916645000000000178155605a9060056020808204909201805460ff948516939092066101000a9283029390920219169190911790555050600a805461090061ff001990911617905550505050505050565b60008161ffff168361ffff16111561337b575080820361337f565b5060005b92915050565b60008282028315806133a1575082848281151561339e57fe5b04145b15156133a957fe5b9392505050565b60008080805b63ffffffff8616600090815260066020526040902054821015613539575060005b63ffffffff851660009081526006602052604090205481101561352e5763ffffffff8516600090815260066020526040902080548290811061341557fe5b60009182526020808320818304015463ffffffff8a16845260068252604084208054929093066101000a900460ff169260059290918690811061345457fe5b60009182526020808320818304015460ff928290066101000a900482168452830193909352604090910190205416141561348d57600193505b63ffffffff861660009081526006602052604090208054839081106134ae57fe5b60009182526020808320818304015463ffffffff8916845260068252604084208054929093066101000a900460ff16926005929091859081106134ed57fe5b60009182526020808320818304015460ff928290066101000a900482168452830193909352604090910190205416141561352657600192505b6001016133d7565b6001909101906133b6565b50509250929050565b6101006040519081016040908152600080835260208301819052908201526060810161356c6135ae565b8152600060208201819052604082018190526060820181905260809091015290565b60e060405190810160405260008152602081016135a961375a565b905290565b60206040519081016040526000815290565b82805482825590600052602060002090601f016020900481019282156136565791602002820160005b8382111561362757835183826101000a81548160ff021916908360ff16021790555092602001926001016020816000010492830192600103026135e9565b80156136545782816101000a81549060ff0219169055600101602081600001049283019260010302613627565b505b50613662929150613782565b5090565b828054828255906000526020600020906007016008900481019282156137055791602002820160005b838211156136d357835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261368f565b80156137035782816101000a81549063ffffffff02191690556004016020816003010492830192600103026136d3565b505b506136629291506137a3565b60e06040519081016040528061356c6137c4565b60c06040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a082015290565b60c06040519081016040526006815b6000815260001990910190602001816137695790505090565b6137a091905b8082111561366257805460ff19168155600101613788565b90565b6137a091905b8082111561366257805463ffffffff191681556001016137a9565b6060604051908101604052600081526002602082016137695600a165627a7a72305820aa58eb55d185b351c219eabf73ca8ffb70e5a24083eea4cdb0a2b1b4642160aa0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e0000000000000000000000001fc7bd85293f3982f40d52698df8d26be89360d6
-----Decoded View---------------
Arg [0] : _dataContract (address): 0xABC1c404424BDF24C19A5cC5EF8F47781D18Eb3E
Arg [1] : _worldContract (address): 0x1fC7bD85293f3982f40D52698DF8D26be89360d6
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000abc1c404424bdf24c19a5cc5ef8f47781d18eb3e
Arg [1] : 0000000000000000000000001fc7bd85293f3982f40d52698df8d26be89360d6
Swarm Source
bzzr://aa58eb55d185b351c219eabf73ca8ffb70e5a24083eea4cdb0a2b1b4642160aa
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,413.7 | 0.003 | $10.24 |
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.