Source Code
Latest 25 from a total of 676 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Start Mission | 10766114 | 263 days ago | IN | 0 GLMR | 0.00874894 | ||||
| Pay Fee | 10766109 | 263 days ago | IN | 0.3 GLMR | 0.07302028 | ||||
| Start Mission | 10165883 | 306 days ago | IN | 0 GLMR | 0.008733 | ||||
| Pay Fee | 10165880 | 306 days ago | IN | 0.3 GLMR | 0.07248387 | ||||
| Start Mission | 9947108 | 321 days ago | IN | 0 GLMR | 0.008721 | ||||
| Pay Fee | 9947106 | 321 days ago | IN | 0.3 GLMR | 0.069146 | ||||
| Start Mission | 9587440 | 346 days ago | IN | 0 GLMR | 0.008721 | ||||
| Pay Fee | 9587437 | 346 days ago | IN | 0.3 GLMR | 0.069146 | ||||
| Pay Fee | 9222142 | 372 days ago | IN | 0.3 GLMR | 0.276584 | ||||
| End Mission | 9137444 | 378 days ago | IN | 0 GLMR | 0.327636 | ||||
| Start Mission | 9137436 | 378 days ago | IN | 0 GLMR | 0.034884 | ||||
| Pay Fee | 9137429 | 378 days ago | IN | 0.3 GLMR | 0.276584 | ||||
| Set Uint Attribu... | 9137412 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| Set Uint Attribu... | 9137410 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| Set Uint Attribu... | 9137407 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| Set Uint Attribu... | 9137397 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| End Mission | 9137366 | 378 days ago | IN | 0 GLMR | 0.327636 | ||||
| Start Mission | 9137285 | 378 days ago | IN | 0 GLMR | 0.034884 | ||||
| Pay Fee | 9137277 | 378 days ago | IN | 0.3 GLMR | 0.276584 | ||||
| Set Uint Attribu... | 9137257 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| Set Uint Attribu... | 9137257 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| Set Uint Attribu... | 9137254 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| Set Uint Attribu... | 9137251 | 378 days ago | IN | 0 GLMR | 0.143192 | ||||
| End Mission | 9137135 | 378 days ago | IN | 0 GLMR | 0.032628 | ||||
| End Mission | 9137135 | 378 days ago | IN | 0 GLMR | 0.032628 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 10766109 | 263 days ago | 0.3 GLMR | ||||
| 10165880 | 306 days ago | 0.3 GLMR | ||||
| 9947106 | 321 days ago | 0.3 GLMR | ||||
| 9587437 | 346 days ago | 0.3 GLMR | ||||
| 9222142 | 372 days ago | 0.3 GLMR | ||||
| 9137429 | 378 days ago | 0.3 GLMR | ||||
| 9137277 | 378 days ago | 0.3 GLMR | ||||
| 9137106 | 378 days ago | 0.3 GLMR | ||||
| 9123081 | 379 days ago | 0.3 GLMR | ||||
| 9122701 | 379 days ago | 0.3 GLMR | ||||
| 9122290 | 379 days ago | 0.3 GLMR | ||||
| 9122146 | 379 days ago | 0.3 GLMR | ||||
| 9122059 | 379 days ago | 0.3 GLMR | ||||
| 9121656 | 379 days ago | 0.3 GLMR | ||||
| 9109832 | 380 days ago | 0.3 GLMR | ||||
| 9080639 | 382 days ago | 0.3 GLMR | ||||
| 8841657 | 399 days ago | 0.3 GLMR | ||||
| 8732964 | 407 days ago | 0.3 GLMR | ||||
| 8427933 | 429 days ago | 0.3 GLMR | ||||
| 7914174 | 465 days ago | 0.3 GLMR | ||||
| 7890839 | 467 days ago | 0.3 GLMR | ||||
| 7754531 | 477 days ago | 0.3 GLMR | ||||
| 7683337 | 482 days ago | 0.3 GLMR | ||||
| 7682157 | 482 days ago | 0.3 GLMR | ||||
| 7681011 | 482 days ago | 0.3 GLMR |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AgeOfChronosManager
Compiler Version
v0.8.21+commit.d9974bed
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache-2.0 /************************************************ ** Manager Contract for AgeOfChronos ** ** Made by @ercole89 for SFY Labs ** ** [email protected] ** ************************************************/ pragma solidity ^0.8.21; interface IParent { function setSoulbound(uint256 tokenId, bool state) external; function ownerOf(uint256 tokenId) external view returns (address); function totalSupply() external view returns (uint256); } interface IChild { function setSoulbound(uint256 tokenId, bool state) external; function ownerOf(uint256 tokenId) external view returns (address); function setExternalPermission(address account, bool permission) external; } interface IAttributeManager { function setUintAttribute( address collection, uint256 tokenId, string memory key, uint256 value ) external; function getUintAttribute( address collection, uint256 tokenId, string memory key ) external view returns (uint256); } contract AgeOfChronosManager { address public owner; address public externalAccount; mapping(address => bool) public contributors; address public rykerCollection; address public lunaCollection; address public ariaCollection; address public thaddeusCollection; address public ariaBodyCollection; address public ariaHeadCollection; address public ariaLeftHandCollection; address public ariaRightHandCollection; address public lunaBodyCollection; address public lunaHeadCollection; address public lunaLeftHandCollection; address public lunaRightHandCollection; address public rykerBodyCollection; address public rykerHeadCollection; address public rykerLeftHandCollection; address public rykerRightHandCollection; address public thaddeusBodyCollection; address public thaddeusHeadCollection; address public thaddeusLeftHandCollection; address public thaddeusRightHandCollection; uint256 public fee; // Variable to store the fee amount in wei address public contractAddress7508; // the ERC7508 string public feeAttributeKey; uint256 public feeAttributeValue; mapping(address => mapping(uint256 => bool)) private inMission; // Mapping to track if a token is in a mission mapping(address => mapping(uint256 => bool)) private hasPaidFee; // Mapping to track who has paid the fee string public name; modifier onlyOwner() { require(msg.sender == owner, "Caller is not the owner"); _; } modifier onlyOwnerOrContributor() { require( msg.sender == owner || contributors[msg.sender], "Caller is not the owner or contributor" ); _; } event MissionStarted( uint256 rykerTokenId, uint256 lunaTokenId, uint256 ariaTokenId, uint256 thaddeusTokenId, string key, address player ); event MissionEnded( uint256 rykerTokenId, uint256 lunaTokenId, uint256 ariaTokenId, uint256 thaddeusTokenId, uint16 childToken, string key, address player ); event FeePaid( address player, uint256 rykerTokenId, uint256 lunaTokenId, uint256 ariaTokenId, uint256 thaddeusTokenId ); event ExternalAccountSet(address account); /** * @notice Sets the deployer as the owner upon contract creation. */ constructor() { owner = msg.sender; name = "ManagerAgeOfChronos"; // Adjusted the name } /** * @notice Sets the fee amount. Only callable by the owner. * @param _fee The new fee amount. */ function setFee(uint256 _fee) external onlyOwner { fee = _fee; } /** * @notice Returns the fee amount. * @return The fee amount. */ function getFee() external view returns (uint256) { return fee; } /** * @notice Sets the 7508 contract address. Only callable by the owner. * @param _contractAddress7508 The new 7508 contract address. */ function set7508Address(address _contractAddress7508) external onlyOwner { contractAddress7508 = _contractAddress7508; } /** * @notice Returns the 7508 contract address. * @return The 7508 contract address. */ function getContractAddress7508() external view returns (address) { return contractAddress7508; } /** * @notice Sets the external account to receive fees. Only callable by the owner. * @param _externalAccount The address of the external account. */ function setExternalAccount(address _externalAccount) external onlyOwner { externalAccount = _externalAccount; emit ExternalAccountSet(_externalAccount); } /** * @notice Returns the external account address. * @return The external account address. */ function getExternalAccount() external view returns (address) { return externalAccount; } /** * @notice Sets the attribute key and value for fee payment check. Only callable by the owner. * @param key The attribute key. * @param value The attribute value. */ function setFeeAttribute( string memory key, uint256 value ) external onlyOwner { feeAttributeKey = key; feeAttributeValue = value; } /** * @notice Allows a user to pay the fee for multiple tokens. The fee must match the preset amount. * @param rykerTokenId The token ID for Ryker. * @param lunaTokenId The token ID for Luna. * @param ariaTokenId The token ID for Aria. * @param thaddeusTokenId The token ID for Thaddeus. */ function payFee( uint256 rykerTokenId, uint256 lunaTokenId, uint256 ariaTokenId, uint256 thaddeusTokenId ) external payable { require(msg.value == fee, "Incorrect fee amount"); require( tokenExists(rykerCollection, rykerTokenId) && tokenExists(lunaCollection, lunaTokenId) && tokenExists(ariaCollection, ariaTokenId) && tokenExists(thaddeusCollection, thaddeusTokenId), "One or more tokens do not exist" ); require( IParent(rykerCollection).ownerOf(rykerTokenId) == msg.sender, "Caller does not own the Ryker token" ); require( IParent(lunaCollection).ownerOf(lunaTokenId) == msg.sender, "Caller does not own the Luna token" ); require( IParent(ariaCollection).ownerOf(ariaTokenId) == msg.sender, "Caller does not own the Aria token" ); require( IParent(thaddeusCollection).ownerOf(thaddeusTokenId) == msg.sender, "Caller does not own the Thaddeus token" ); // Check if the attribute is already set to the required value require( IAttributeManager(contractAddress7508).getUintAttribute( rykerCollection, rykerTokenId, feeAttributeKey ) == feeAttributeValue && IAttributeManager(contractAddress7508).getUintAttribute( lunaCollection, lunaTokenId, feeAttributeKey ) == feeAttributeValue && IAttributeManager(contractAddress7508).getUintAttribute( ariaCollection, ariaTokenId, feeAttributeKey ) == feeAttributeValue && IAttributeManager(contractAddress7508).getUintAttribute( thaddeusCollection, thaddeusTokenId, feeAttributeKey ) == feeAttributeValue, "Attribute is not set to required value" ); hasPaidFee[rykerCollection][rykerTokenId] = true; hasPaidFee[lunaCollection][lunaTokenId] = true; hasPaidFee[ariaCollection][ariaTokenId] = true; hasPaidFee[thaddeusCollection][thaddeusTokenId] = true; payable(externalAccount).transfer(msg.value); emit FeePaid( msg.sender, rykerTokenId, lunaTokenId, ariaTokenId, thaddeusTokenId ); } /** * @notice Checks if a token has paid the fee. * @param collection The collection of the token to check. * @param tokenId The ID of the token to check. * @return True if the token has paid the fee, false otherwise. */ function hasTokenPaidFee( address collection, uint256 tokenId ) external view returns (bool) { return hasPaidFee[collection][tokenId]; } /** * @notice Sets the fee payment status of a token. Only callable by the owner or contributor. * @param rykerTokenId The token ID for Ryker. * @param lunaTokenId The token ID for Luna. * @param ariaTokenId The token ID for Aria. * @param thaddeusTokenId The token ID for Thaddeus. * @param status The new fee payment status (true for paid, false for not paid). */ function setFeePaymentStatus( uint256 rykerTokenId, uint256 lunaTokenId, uint256 ariaTokenId, uint256 thaddeusTokenId, bool status ) external onlyOwnerOrContributor { hasPaidFee[rykerCollection][rykerTokenId] = status; hasPaidFee[lunaCollection][lunaTokenId] = status; hasPaidFee[ariaCollection][ariaTokenId] = status; hasPaidFee[thaddeusCollection][thaddeusTokenId] = status; } /** * @notice Sets the Ryker collection address. Only callable by the owner. * @param _rykerCollection The new Ryker collection address. */ function setRykerCollection(address _rykerCollection) external onlyOwner { rykerCollection = _rykerCollection; } /** * @notice Sets the Luna collection address. Only callable by the owner. * @param _lunaCollection The new Luna collection address. */ function setLunaCollection(address _lunaCollection) external onlyOwner { lunaCollection = _lunaCollection; } /** * @notice Sets the Aria collection address. Only callable by the owner. * @param _ariaCollection The new Aria collection address. */ function setAriaCollection(address _ariaCollection) external onlyOwner { ariaCollection = _ariaCollection; } /** * @notice Sets the Thaddeus collection address. Only callable by the owner. * @param _thaddeusCollection The new Thaddeus collection address. */ function setThaddeusCollection( address _thaddeusCollection ) external onlyOwner { thaddeusCollection = _thaddeusCollection; } /** * @notice Sets the addresses for all child collections. Only callable by the owner. * @param _childCollections An array containing the new addresses for the child collections. * The array must contain addresses in the following order: * [ariaBody, ariaHead, ariaLeftHand, ariaRightHand, lunaBody, lunaHead, lunaLeftHand, lunaRightHand, * rykerBody, rykerHead, rykerLeftHand, rykerRightHand, thaddeusBody, thaddeusHead, thaddeusLeftHand, thaddeusRightHand] */ function setChildCollections( address[] calldata _childCollections ) external onlyOwner { require(_childCollections.length == 16, "Invalid number of addresses"); ariaBodyCollection = _childCollections[0]; ariaHeadCollection = _childCollections[1]; ariaLeftHandCollection = _childCollections[2]; ariaRightHandCollection = _childCollections[3]; lunaBodyCollection = _childCollections[4]; lunaHeadCollection = _childCollections[5]; lunaLeftHandCollection = _childCollections[6]; lunaRightHandCollection = _childCollections[7]; rykerBodyCollection = _childCollections[8]; rykerHeadCollection = _childCollections[9]; rykerLeftHandCollection = _childCollections[10]; rykerRightHandCollection = _childCollections[11]; thaddeusBodyCollection = _childCollections[12]; thaddeusHeadCollection = _childCollections[13]; thaddeusLeftHandCollection = _childCollections[14]; thaddeusRightHandCollection = _childCollections[15]; } /** * @notice Adds a contributor. Only callable by the owner. * @param _contributor The address of the new contributor. */ function addContributor(address _contributor) external onlyOwner { contributors[_contributor] = true; } /** * @notice Removes a contributor. Only callable by the owner. * @param _contributor The address of the contributor to remove. */ function removeContributor(address _contributor) external onlyOwner { contributors[_contributor] = false; } /** * @notice Checks if an address is a contributor. * @param account The address to check. * @return True if the address is a contributor, false otherwise. */ function isContributor(address account) public view returns (bool) { return contributors[account]; } /** * @notice Starts a mission by setting the soulbound state for a list of tokens. Only callable by the owner or contributor. * @param rykerTokenId The token ID for Ryker. * @param lunaTokenId The token ID for Luna. * @param ariaTokenId The token ID for Aria. * @param thaddeusTokenId The token ID for Thaddeus. * @param key The attribute key. */ function startMission( uint256 rykerTokenId, uint256 lunaTokenId, uint256 ariaTokenId, uint256 thaddeusTokenId, string memory key ) external onlyOwnerOrContributor { require( !inMission[rykerCollection][rykerTokenId] || !inMission[lunaCollection][lunaTokenId] || !inMission[ariaCollection][ariaTokenId] || !inMission[thaddeusCollection][thaddeusTokenId], "One or more tokens are already in a mission" ); require( hasPaidFee[rykerCollection][rykerTokenId] && hasPaidFee[lunaCollection][lunaTokenId] && hasPaidFee[ariaCollection][ariaTokenId] && hasPaidFee[thaddeusCollection][thaddeusTokenId], "One or more tokens have not paid the fee" ); inMission[rykerCollection][rykerTokenId] = true; inMission[lunaCollection][lunaTokenId] = true; inMission[ariaCollection][ariaTokenId] = true; inMission[thaddeusCollection][thaddeusTokenId] = true; emit MissionStarted( rykerTokenId, lunaTokenId, ariaTokenId, thaddeusTokenId, key, msg.sender ); } /** * @notice Ends a mission by resetting the soulbound state for a list of tokens and granting external permission. Only callable by the owner or contributor. * @param rykerTokenId The token ID for Ryker. * @param lunaTokenId The token ID for Luna. * @param ariaTokenId The token ID for Aria. * @param thaddeusTokenId The token ID for Thaddeus. * @param key The attribute key. * @param whichChild Specifies which child's permission to set (1-16). */ function endMission( uint256 rykerTokenId, uint256 lunaTokenId, uint256 ariaTokenId, uint256 thaddeusTokenId, uint16 whichChild, string memory key ) external onlyOwnerOrContributor { require( inMission[rykerCollection][rykerTokenId] && inMission[lunaCollection][lunaTokenId] && inMission[ariaCollection][ariaTokenId] && inMission[thaddeusCollection][thaddeusTokenId], "One or more tokens are not currently in a mission" ); IParent(rykerCollection).setSoulbound(rykerTokenId, false); IParent(lunaCollection).setSoulbound(lunaTokenId, false); IParent(ariaCollection).setSoulbound(ariaTokenId, false); IParent(thaddeusCollection).setSoulbound(thaddeusTokenId, false); // Array of child collections address[16] memory childCollections = [ ariaBodyCollection, ariaHeadCollection, ariaLeftHandCollection, ariaRightHandCollection, lunaBodyCollection, lunaHeadCollection, lunaLeftHandCollection, lunaRightHandCollection, rykerBodyCollection, rykerHeadCollection, rykerLeftHandCollection, rykerRightHandCollection, thaddeusBodyCollection, thaddeusHeadCollection, thaddeusLeftHandCollection, thaddeusRightHandCollection ]; require(whichChild > 0 && whichChild <= 16, "Invalid whichChild value"); address childCollection = childCollections[whichChild - 1]; IChild(childCollection).setExternalPermission( IParent(rykerCollection).ownerOf(rykerTokenId), true ); inMission[rykerCollection][rykerTokenId] = false; inMission[lunaCollection][lunaTokenId] = false; inMission[ariaCollection][ariaTokenId] = false; inMission[thaddeusCollection][thaddeusTokenId] = false; hasPaidFee[rykerCollection][rykerTokenId] = false; hasPaidFee[lunaCollection][lunaTokenId] = false; hasPaidFee[ariaCollection][ariaTokenId] = false; hasPaidFee[thaddeusCollection][thaddeusTokenId] = false; uint256 rykerValue = IAttributeManager(contractAddress7508) .getUintAttribute(rykerCollection, rykerTokenId, key); uint256 lunaValue = IAttributeManager(contractAddress7508).getUintAttribute( lunaCollection, lunaTokenId, key ); uint256 ariaValue = IAttributeManager(contractAddress7508).getUintAttribute( ariaCollection, ariaTokenId, key ); uint256 thaddeusValue = IAttributeManager(contractAddress7508) .getUintAttribute(thaddeusCollection, thaddeusTokenId, key); rykerValue++; lunaValue++; ariaValue++; thaddeusValue++; IAttributeManager(contractAddress7508).setUintAttribute( rykerCollection, rykerTokenId, key, rykerValue ); IAttributeManager(contractAddress7508).setUintAttribute( lunaCollection, lunaTokenId, key, lunaValue ); IAttributeManager(contractAddress7508).setUintAttribute( ariaCollection, ariaTokenId, key, ariaValue ); IAttributeManager(contractAddress7508).setUintAttribute( thaddeusCollection, thaddeusTokenId, key, thaddeusValue ); emit MissionEnded( rykerTokenId, lunaTokenId, ariaTokenId, thaddeusTokenId, whichChild, key, msg.sender ); } /** * @notice Checks if a given token is currently in a mission. * @param collection The collection address. * @param tokenId The token ID to check. * @return True if the token is in a mission, false otherwise. */ function isTokenInMission( address collection, uint256 tokenId ) external view returns (bool) { return inMission[collection][tokenId]; } /** * @notice Returns the list of collection addresses. * @return An array of collection addresses. */ function getCollectionAddresses() external view returns (address[] memory) { address[] memory collections = new address[](4); collections[0] = rykerCollection; collections[1] = lunaCollection; collections[2] = ariaCollection; collections[3] = thaddeusCollection; return collections; } /** * @notice Returns the list of child collection addresses. * @return An array of child collection addresses. */ function getChildCollectionAddresses() external view returns (address[] memory) { address[] memory childCollections = new address[](16); childCollections[0] = ariaBodyCollection; childCollections[1] = ariaHeadCollection; childCollections[2] = ariaLeftHandCollection; childCollections[3] = ariaRightHandCollection; childCollections[4] = lunaBodyCollection; childCollections[5] = lunaHeadCollection; childCollections[6] = lunaLeftHandCollection; childCollections[7] = lunaRightHandCollection; childCollections[8] = rykerBodyCollection; childCollections[9] = rykerHeadCollection; childCollections[10] = rykerLeftHandCollection; childCollections[11] = rykerRightHandCollection; childCollections[12] = thaddeusBodyCollection; childCollections[13] = thaddeusHeadCollection; childCollections[14] = thaddeusLeftHandCollection; childCollections[15] = thaddeusRightHandCollection; return childCollections; } /** * @dev Internal function to check if a token exists in the collection. * @param collection The address of the collection contract. * @param tokenId The token ID to check. * @return True if the token exists, false otherwise. */ function tokenExists( address collection, uint256 tokenId ) internal view returns (bool) { return tokenId <= IParent(collection).totalSupply(); } /** * @dev Internal function to check if a token exists in the collection. * @param collection The address of the collection contract. * @param tokenId The token ID to check. * @return True if the token exists, false otherwise. */ function isTokenExists( address collection, uint256 tokenId ) external view returns (bool) { return tokenExists(collection, tokenId); } /** * @notice Sets a uint attribute for a token in a specified collection. * @param collection The address of the collection contract. * @param tokenId The token ID. * @param key The attribute key. * @param value The attribute value. */ function setUintAttribute( address collection, uint256 tokenId, string memory key, uint256 value ) external onlyOwnerOrContributor { IAttributeManager(contractAddress7508).setUintAttribute( collection, tokenId, key, value ); } /** * @notice Gets a uint attribute for a token in a specified collection. * @param collection The address of the collection contract. * @param tokenId The token ID. * @param key The attribute key. * @return The attribute value. */ function getUintAttribute( address collection, uint256 tokenId, string memory key ) external view returns (uint256) { return IAttributeManager(contractAddress7508).getUintAttribute( collection, tokenId, key ); } }
{
"evmVersion": "london",
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"ExternalAccountSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"rykerTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lunaTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ariaTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thaddeusTokenId","type":"uint256"}],"name":"FeePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rykerTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lunaTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ariaTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thaddeusTokenId","type":"uint256"},{"indexed":false,"internalType":"uint16","name":"childToken","type":"uint16"},{"indexed":false,"internalType":"string","name":"key","type":"string"},{"indexed":false,"internalType":"address","name":"player","type":"address"}],"name":"MissionEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rykerTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lunaTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ariaTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thaddeusTokenId","type":"uint256"},{"indexed":false,"internalType":"string","name":"key","type":"string"},{"indexed":false,"internalType":"address","name":"player","type":"address"}],"name":"MissionStarted","type":"event"},{"inputs":[{"internalType":"address","name":"_contributor","type":"address"}],"name":"addContributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ariaBodyCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ariaCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ariaHeadCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ariaLeftHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ariaRightHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractAddress7508","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contributors","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rykerTokenId","type":"uint256"},{"internalType":"uint256","name":"lunaTokenId","type":"uint256"},{"internalType":"uint256","name":"ariaTokenId","type":"uint256"},{"internalType":"uint256","name":"thaddeusTokenId","type":"uint256"},{"internalType":"uint16","name":"whichChild","type":"uint16"},{"internalType":"string","name":"key","type":"string"}],"name":"endMission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"externalAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeAttributeKey","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeAttributeValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChildCollectionAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCollectionAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractAddress7508","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExternalAccount","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"key","type":"string"}],"name":"getUintAttribute","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"hasTokenPaidFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isContributor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isTokenExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"isTokenInMission","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lunaBodyCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lunaCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lunaHeadCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lunaLeftHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lunaRightHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rykerTokenId","type":"uint256"},{"internalType":"uint256","name":"lunaTokenId","type":"uint256"},{"internalType":"uint256","name":"ariaTokenId","type":"uint256"},{"internalType":"uint256","name":"thaddeusTokenId","type":"uint256"}],"name":"payFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_contributor","type":"address"}],"name":"removeContributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rykerBodyCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rykerCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rykerHeadCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rykerLeftHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rykerRightHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress7508","type":"address"}],"name":"set7508Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ariaCollection","type":"address"}],"name":"setAriaCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_childCollections","type":"address[]"}],"name":"setChildCollections","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_externalAccount","type":"address"}],"name":"setExternalAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"key","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setFeeAttribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rykerTokenId","type":"uint256"},{"internalType":"uint256","name":"lunaTokenId","type":"uint256"},{"internalType":"uint256","name":"ariaTokenId","type":"uint256"},{"internalType":"uint256","name":"thaddeusTokenId","type":"uint256"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setFeePaymentStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lunaCollection","type":"address"}],"name":"setLunaCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rykerCollection","type":"address"}],"name":"setRykerCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_thaddeusCollection","type":"address"}],"name":"setThaddeusCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"collection","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"key","type":"string"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setUintAttribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rykerTokenId","type":"uint256"},{"internalType":"uint256","name":"lunaTokenId","type":"uint256"},{"internalType":"uint256","name":"ariaTokenId","type":"uint256"},{"internalType":"uint256","name":"thaddeusTokenId","type":"uint256"},{"internalType":"string","name":"key","type":"string"}],"name":"startMission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"thaddeusBodyCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thaddeusCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thaddeusHeadCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thaddeusLeftHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thaddeusRightHandCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040523480156200001157600080fd5b50600080546001600160a01b0319163317905560408051808201909152601381527f4d616e616765724167654f664368726f6e6f73000000000000000000000000006020820152601d9062000067908262000113565b50620001df565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200009957607f821691505b602082108103620000ba57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200010e57600081815260208120601f850160051c81016020861015620000e95750805b601f850160051c820191505b818110156200010a57828155600101620000f5565b5050505b505050565b81516001600160401b038111156200012f576200012f6200006e565b620001478162000140845462000084565b84620000c0565b602080601f8311600181146200017f5760008415620001665750858301515b600019600386901b1c1916600185901b1785556200010a565b600085815260208120601f198616915b82811015620001b0578886015182559484019460019091019084016200018f565b5085821015620001cf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613a7680620001ef6000396000f3fe6080604052600436106103355760003560e01c806369fe0e2d116101ab578063c8e9db02116100f7578063eacc04bb11610095578063f75451f81161006f578063f75451f8146109f0578063f811ceb814610a10578063fabdc66a14610a30578063fd16f08c14610a5057600080fd5b8063eacc04bb1461099b578063ed208672146109bb578063f0f16c98146109db57600080fd5b8063d8770863116100d1578063d877086314610925578063d93f3d7314610945578063d94837fb14610965578063ddca3f431461098557600080fd5b8063c8e9db02146108d0578063ced72f87146108f0578063d155e8e01461090557600080fd5b8063ac9c973111610164578063b579184f1161013e578063b579184f1461085f578063bdc8ef371461087f578063c40047981461089f578063c8b22c0f146108bd57600080fd5b8063ac9c9731146107ff578063affdd3a11461081f578063b3f3ab5c1461083f57600080fd5b806369fe0e2d1461073f5780636ceaa0151461075f5780636d08557a1461077f57806376cb75091461079f578063850a1281146107bf5780638da5cb5b146107df57600080fd5b80634ed6446611610285578063584b86d2116102235780635c695015116101fd5780635c695015146106995780635d2d02f7146106b957806363d7adfd146106d95780636533ad2a146106f957600080fd5b8063584b86d2146106395780635944db6e146106595780635ac020531461067957600080fd5b806353a4b7c41161025f57806353a4b7c4146105b957806356e6db59146105d957806357302794146105f957806357ad4c7c1461061957600080fd5b80634ed64466146105635780634f40efdb14610583578063519cb17b146105a357600080fd5b80632bb7e019116102f2578063398d8c5d116102cc578063398d8c5d146104ee5780633b919928146105035780633cd9dad0146105235780633e6e02561461054357600080fd5b80632bb7e0191461048a5780633245e47a146104ac578063328ac965146104cc57600080fd5b806306fdde031461033a5780630f9285ef146103655780631b8bfea3146103bb5780631d0d35f5146103e95780631f6d4942146104225780632b03eb3614610452575b600080fd5b34801561034657600080fd5b5061034f610a6e565b60405161035c91906131e7565b60405180910390f35b34801561037157600080fd5b506103ab610380366004613212565b6001600160a01b03919091166000908152601c60209081526040808320938352929052205460ff1690565b604051901515815260200161035c565b3480156103c757600080fd5b506103db6103d63660046132e1565b610afc565b60405190815260200161035c565b3480156103f557600080fd5b506103ab61040436600461333a565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561042e57600080fd5b506103ab61043d36600461333a565b60026020526000908152604090205460ff1681565b34801561045e57600080fd5b50600554610472906001600160a01b031681565b6040516001600160a01b03909116815260200161035c565b34801561049657600080fd5b506104aa6104a5366004613357565b610b7a565b005b3480156104b857600080fd5b50601854610472906001600160a01b031681565b3480156104d857600080fd5b506104e1610bc0565b60405161035c919061339c565b3480156104fa57600080fd5b506104e1610cb7565b34801561050f57600080fd5b50600954610472906001600160a01b031681565b34801561052f57600080fd5b50600d54610472906001600160a01b031681565b34801561054f57600080fd5b506104aa61055e36600461333a565b610fdf565b34801561056f57600080fd5b50600354610472906001600160a01b031681565b34801561058f57600080fd5b506104aa61059e36600461333a565b61102b565b3480156105af57600080fd5b506103db601a5481565b3480156105c557600080fd5b506104aa6105d43660046133e9565b611077565b3480156105e557600080fd5b506104aa6105f436600461343b565b611152565b34801561060557600080fd5b50601154610472906001600160a01b031681565b34801561062557600080fd5b506104aa61063436600461333a565b611650565b34801561064557600080fd5b506104aa6106543660046134b0565b61169c565b34801561066557600080fd5b50600f54610472906001600160a01b031681565b34801561068557600080fd5b50600754610472906001600160a01b031681565b3480156106a557600080fd5b50601654610472906001600160a01b031681565b3480156106c557600080fd5b506104aa6106d436600461333a565b6119ee565b3480156106e557600080fd5b50600454610472906001600160a01b031681565b34801561070557600080fd5b506103ab610714366004613212565b6001600160a01b03919091166000908152601b60209081526040808320938352929052205460ff1690565b34801561074b57600080fd5b506104aa61075a366004613514565b611a3a565b34801561076b57600080fd5b506104aa61077a36600461352d565b611a69565b34801561078b57600080fd5b50600154610472906001600160a01b031681565b3480156107ab57600080fd5b50600c54610472906001600160a01b031681565b3480156107cb57600080fd5b50601454610472906001600160a01b031681565b3480156107eb57600080fd5b50600054610472906001600160a01b031681565b34801561080b57600080fd5b50600654610472906001600160a01b031681565b34801561082b57600080fd5b50600a54610472906001600160a01b031681565b34801561084b57600080fd5b506104aa61085a36600461333a565b61273e565b34801561086b57600080fd5b506104aa61087a36600461333a565b612789565b34801561088b57600080fd5b506103ab61089a366004613212565b6127d7565b3480156108ab57600080fd5b506001546001600160a01b0316610472565b6104aa6108cb3660046135a9565b6127ea565b3480156108dc57600080fd5b50601054610472906001600160a01b031681565b3480156108fc57600080fd5b506017546103db565b34801561091157600080fd5b50601254610472906001600160a01b031681565b34801561093157600080fd5b50600e54610472906001600160a01b031681565b34801561095157600080fd5b50601554610472906001600160a01b031681565b34801561097157600080fd5b50600854610472906001600160a01b031681565b34801561099157600080fd5b506103db60175481565b3480156109a757600080fd5b50600b54610472906001600160a01b031681565b3480156109c757600080fd5b506104aa6109d63660046135db565b612faa565b3480156109e757600080fd5b5061034f61305c565b3480156109fc57600080fd5b506104aa610a0b36600461333a565b613069565b348015610a1c57600080fd5b50601354610472906001600160a01b031681565b348015610a3c57600080fd5b506104aa610a4b36600461333a565b6130e7565b348015610a5c57600080fd5b506018546001600160a01b0316610472565b601d8054610a7b9061363c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa79061363c565b8015610af45780601f10610ac957610100808354040283529160200191610af4565b820191906000526020600020905b815481529060010190602001808311610ad757829003601f168201915b505050505081565b601854604051631b8bfea360e01b81526000916001600160a01b031690631b8bfea390610b3190879087908790600401613676565b602060405180830381865afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7291906136a6565b949350505050565b6000546001600160a01b03163314610bad5760405162461bcd60e51b8152600401610ba4906136bf565b60405180910390fd5b6019610bb98382613745565b50601a5550565b60408051600480825260a082019092526060916000919060208201608080368337505060035482519293506001600160a01b031691839150600090610c0757610c07613805565b6001600160a01b039283166020918202929092010152600454825191169082906001908110610c3857610c38613805565b6001600160a01b039283166020918202929092010152600554825191169082906002908110610c6957610c69613805565b6001600160a01b039283166020918202929092010152600654825191169082906003908110610c9a57610c9a613805565b6001600160a01b0390921660209283029190910190910152919050565b6040805160108082526102208201909252606091600091906020820161020080368337505060075482519293506001600160a01b031691839150600090610d0057610d00613805565b6001600160a01b039283166020918202929092010152600854825191169082906001908110610d3157610d31613805565b6001600160a01b039283166020918202929092010152600954825191169082906002908110610d6257610d62613805565b6001600160a01b039283166020918202929092010152600a54825191169082906003908110610d9357610d93613805565b6001600160a01b039283166020918202929092010152600b54825191169082906004908110610dc457610dc4613805565b6001600160a01b039283166020918202929092010152600c54825191169082906005908110610df557610df5613805565b6001600160a01b039283166020918202929092010152600d54825191169082906006908110610e2657610e26613805565b6001600160a01b039283166020918202929092010152600e54825191169082906007908110610e5757610e57613805565b6001600160a01b039283166020918202929092010152600f54825191169082906008908110610e8857610e88613805565b6001600160a01b039283166020918202929092010152601054825191169082906009908110610eb957610eb9613805565b6001600160a01b03928316602091820292909201015260115482519116908290600a908110610eea57610eea613805565b6001600160a01b03928316602091820292909201015260125482519116908290600b908110610f1b57610f1b613805565b6001600160a01b03928316602091820292909201015260135482519116908290600c908110610f4c57610f4c613805565b6001600160a01b03928316602091820292909201015260145482519116908290600d908110610f7d57610f7d613805565b6001600160a01b03928316602091820292909201015260155482519116908290600e908110610fae57610fae613805565b6001600160a01b03928316602091820292909201015260165482519116908290600f908110610c9a57610c9a613805565b6000546001600160a01b031633146110095760405162461bcd60e51b8152600401610ba4906136bf565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110555760405162461bcd60e51b8152600401610ba4906136bf565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061109f57503360009081526002602052604090205460ff165b6110bb5760405162461bcd60e51b8152600401610ba49061381b565b6003546001600160a01b039081166000908152601c60208181526040808420998452988152888320805495151560ff199687168117909155600454851684528282528984209884529781528883208054861689179055600554841683528181528883209683529586528782208054851688179055600654909216815290845285812092815291909252929092208054909216179055565b6000546001600160a01b0316331461117c5760405162461bcd60e51b8152600401610ba4906136bf565b601081146111cc5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206e756d626572206f662061646472657373657300000000006044820152606401610ba4565b818160008181106111df576111df613805565b90506020020160208101906111f4919061333a565b600780546001600160a01b0319166001600160a01b03929092169190911790558181600181811061122757611227613805565b905060200201602081019061123c919061333a565b600880546001600160a01b0319166001600160a01b03929092169190911790558181600281811061126f5761126f613805565b9050602002016020810190611284919061333a565b600980546001600160a01b0319166001600160a01b0392909216919091179055818160038181106112b7576112b7613805565b90506020020160208101906112cc919061333a565b600a80546001600160a01b0319166001600160a01b0392909216919091179055818160048181106112ff576112ff613805565b9050602002016020810190611314919061333a565b600b80546001600160a01b0319166001600160a01b03929092169190911790558181600581811061134757611347613805565b905060200201602081019061135c919061333a565b600c80546001600160a01b0319166001600160a01b03929092169190911790558181600681811061138f5761138f613805565b90506020020160208101906113a4919061333a565b600d80546001600160a01b0319166001600160a01b0392909216919091179055818160078181106113d7576113d7613805565b90506020020160208101906113ec919061333a565b600e80546001600160a01b0319166001600160a01b03929092169190911790558181600881811061141f5761141f613805565b9050602002016020810190611434919061333a565b600f80546001600160a01b0319166001600160a01b03929092169190911790558181600981811061146757611467613805565b905060200201602081019061147c919061333a565b601080546001600160a01b0319166001600160a01b03929092169190911790558181600a8181106114af576114af613805565b90506020020160208101906114c4919061333a565b601180546001600160a01b0319166001600160a01b03929092169190911790558181600b8181106114f7576114f7613805565b905060200201602081019061150c919061333a565b601280546001600160a01b0319166001600160a01b03929092169190911790558181600c81811061153f5761153f613805565b9050602002016020810190611554919061333a565b601380546001600160a01b0319166001600160a01b03929092169190911790558181600d81811061158757611587613805565b905060200201602081019061159c919061333a565b601480546001600160a01b0319166001600160a01b03929092169190911790558181600e8181106115cf576115cf613805565b90506020020160208101906115e4919061333a565b601580546001600160a01b0319166001600160a01b03929092169190911790558181600f81811061161757611617613805565b905060200201602081019061162c919061333a565b601680546001600160a01b0319166001600160a01b03929092169190911790555050565b6000546001600160a01b0316331461167a5760405162461bcd60e51b8152600401610ba4906136bf565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806116c457503360009081526002602052604090205460ff165b6116e05760405162461bcd60e51b8152600401610ba49061381b565b6003546001600160a01b03166000908152601b6020908152604080832088845290915290205460ff16158061173b57506004546001600160a01b03166000908152601b6020908152604080832087845290915290205460ff16155b8061176c57506005546001600160a01b03166000908152601b6020908152604080832086845290915290205460ff16155b8061179d57506006546001600160a01b03166000908152601b6020908152604080832085845290915290205460ff16155b6117fd5760405162461bcd60e51b815260206004820152602b60248201527f4f6e65206f72206d6f726520746f6b656e732061726520616c7265616479206960448201526a3710309036b4b9b9b4b7b760a91b6064820152608401610ba4565b6003546001600160a01b03166000908152601c6020908152604080832088845290915290205460ff16801561185757506004546001600160a01b03166000908152601c6020908152604080832087845290915290205460ff165b801561188857506005546001600160a01b03166000908152601c6020908152604080832086845290915290205460ff165b80156118b957506006546001600160a01b03166000908152601c6020908152604080832085845290915290205460ff165b6119165760405162461bcd60e51b815260206004820152602860248201527f4f6e65206f72206d6f726520746f6b656e732068617665206e6f742070616964604482015267207468652066656560c01b6064820152608401610ba4565b6003546001600160a01b039081166000908152601b602081815260408084208a855282528084208054600160ff199182168117909255600454871686528484528286208b875284528286208054821683179055600554871686528484528286208a875284528286208054821683179055600654909616855292825280842087855290915291829020805490931617909155517fcc6d4030c8fb2a413e63b90ca72bbb103a627967a25155efb8a3eee2545c38b6906119df90879087908790879087903390613861565b60405180910390a15050505050565b6000546001600160a01b03163314611a185760405162461bcd60e51b8152600401610ba4906136bf565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a645760405162461bcd60e51b8152600401610ba4906136bf565b601755565b6000546001600160a01b0316331480611a9157503360009081526002602052604090205460ff165b611aad5760405162461bcd60e51b8152600401610ba49061381b565b6003546001600160a01b03166000908152601b6020908152604080832089845290915290205460ff168015611b0757506004546001600160a01b03166000908152601b6020908152604080832088845290915290205460ff165b8015611b3857506005546001600160a01b03166000908152601b6020908152604080832087845290915290205460ff165b8015611b6957506006546001600160a01b03166000908152601b6020908152604080832086845290915290205460ff165b611bcf5760405162461bcd60e51b815260206004820152603160248201527f4f6e65206f72206d6f726520746f6b656e7320617265206e6f74206375727265604482015270373a363c9034b710309036b4b9b9b4b7b760791b6064820152608401610ba4565b60035460405163966d964b60e01b815260048101889052600060248201526001600160a01b039091169063966d964b90604401600060405180830381600087803b158015611c1c57600080fd5b505af1158015611c30573d6000803e3d6000fd5b50506004805460405163966d964b60e01b8152918201899052600060248301526001600160a01b0316925063966d964b9150604401600060405180830381600087803b158015611c7f57600080fd5b505af1158015611c93573d6000803e3d6000fd5b505060055460405163966d964b60e01b815260048101889052600060248201526001600160a01b03909116925063966d964b9150604401600060405180830381600087803b158015611ce457600080fd5b505af1158015611cf8573d6000803e3d6000fd5b505060065460405163966d964b60e01b815260048101879052600060248201526001600160a01b03909116925063966d964b9150604401600060405180830381600087803b158015611d4957600080fd5b505af1158015611d5d573d6000803e3d6000fd5b505060408051610200810182526007546001600160a01b03908116825260085481166020830152600954811692820192909252600a5482166060820152600b5482166080820152600c54821660a0820152600d54821660c0820152600e54821660e0820152600f548216610100820152601054821661012082015260115482166101408201526012548216610160820152601354821661018082015260145482166101a082015260155482166101c08201526016549091166101e082015291505061ffff831615801590611e36575060108361ffff1611155b611e825760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642077686963684368696c642076616c756500000000000000006044820152606401610ba4565b600081611e906001866138bd565b61ffff1660108110611ea457611ea4613805565b60200201516003546040516331a9108f60e11b8152600481018b90529192506001600160a01b0380841692634cc482c1929190911690636352211e90602401602060405180830381865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2491906138df565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b505050506000601b6000600360009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060008a815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601b6000600460009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600089815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601b6000600560009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600088815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601b6000600660009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600087815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600360009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060008a815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600460009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600089815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600560009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600088815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600660009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600087815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601860009054906101000a90046001600160a01b03166001600160a01b0316631b8bfea3600360009054906101000a90046001600160a01b03168b876040518463ffffffff1660e01b815260040161230093929190613676565b602060405180830381865afa15801561231d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234191906136a6565b60185460048054604051631b8bfea360e01b81529394506000936001600160a01b0393841693631b8bfea39361237f93909116918e918b9101613676565b602060405180830381865afa15801561239c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c091906136a6565b601854600554604051631b8bfea360e01b81529293506000926001600160a01b0392831692631b8bfea3926123fe929116908d908b90600401613676565b602060405180830381865afa15801561241b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243f91906136a6565b601854600654604051631b8bfea360e01b81529293506000926001600160a01b0392831692631b8bfea39261247d929116908d908c90600401613676565b602060405180830381865afa15801561249a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124be91906136a6565b9050836124ca816138fc565b94505082806124d8906138fc565b93505081806124e6906138fc565b92505080806124f4906138fc565b915050601860009054906101000a90046001600160a01b03166001600160a01b031663ed208672600360009054906101000a90046001600160a01b03168e8a886040518563ffffffff1660e01b81526004016125539493929190613915565b600060405180830381600087803b15801561256d57600080fd5b505af1158015612581573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b031663ed208672600460009054906101000a90046001600160a01b03168d8a876040518563ffffffff1660e01b81526004016125e19493929190613915565b600060405180830381600087803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b5050601854600554604051637690433960e11b81526001600160a01b03928316945063ed208672935061264e92909116908e908c908890600401613915565b600060405180830381600087803b15801561266857600080fd5b505af115801561267c573d6000803e3d6000fd5b5050601854600654604051637690433960e11b81526001600160a01b03928316945063ed20867293506126bb92909116908d908c908790600401613915565b600060405180830381600087803b1580156126d557600080fd5b505af11580156126e9573d6000803e3d6000fd5b505050507f8da2cbc0e8d30ee9589f91476da9a790be9a8b2ff2282ffa176ee56da4f3c0288c8c8c8c8c8c33604051612728979695949392919061394d565b60405180910390a1505050505050505050505050565b6000546001600160a01b031633146127685760405162461bcd60e51b8152600401610ba4906136bf565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b031633146127b35760405162461bcd60e51b8152600401610ba4906136bf565b6001600160a01b03166000908152600260205260409020805460ff19166001179055565b60006127e38383613133565b9392505050565b60175434146128325760405162461bcd60e51b8152602060048201526014602482015273125b98dbdc9c9958dd0819995948185b5bdd5b9d60621b6044820152606401610ba4565b600354612848906001600160a01b031685613133565b80156128655750600454612865906001600160a01b031684613133565b80156128825750600554612882906001600160a01b031683613133565b801561289f575060065461289f906001600160a01b031682613133565b6128eb5760405162461bcd60e51b815260206004820152601f60248201527f4f6e65206f72206d6f726520746f6b656e7320646f206e6f74206578697374006044820152606401610ba4565b6003546040516331a9108f60e11b81526004810186905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295891906138df565b6001600160a01b0316146129ba5760405162461bcd60e51b815260206004820152602360248201527f43616c6c657220646f6573206e6f74206f776e207468652052796b657220746f60448201526235b2b760e91b6064820152608401610ba4565b600480546040516331a9108f60e11b815291820185905233916001600160a01b0390911690636352211e90602401602060405180830381865afa158015612a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2991906138df565b6001600160a01b031614612a8a5760405162461bcd60e51b815260206004820152602260248201527f43616c6c657220646f6573206e6f74206f776e20746865204c756e6120746f6b60448201526132b760f11b6064820152608401610ba4565b6005546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af791906138df565b6001600160a01b031614612b585760405162461bcd60e51b815260206004820152602260248201527f43616c6c657220646f6573206e6f74206f776e20746865204172696120746f6b60448201526132b760f11b6064820152608401610ba4565b6006546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc591906138df565b6001600160a01b031614612c2a5760405162461bcd60e51b815260206004820152602660248201527f43616c6c657220646f6573206e6f74206f776e20746865205468616464657573604482015265103a37b5b2b760d11b6064820152608401610ba4565b601a54601854600354604051631b8bfea360e01b81526001600160a01b0392831692631b8bfea392612c6692911690899060199060040161399e565b602060405180830381865afa158015612c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca791906136a6565b148015612d2e5750601a5460185460048054604051631b8bfea360e01b81526001600160a01b0393841693631b8bfea393612ceb939091169189916019910161399e565b602060405180830381865afa158015612d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2c91906136a6565b145b8015612db45750601a54601854600554604051631b8bfea360e01b81526001600160a01b0392831692631b8bfea392612d7192911690879060199060040161399e565b602060405180830381865afa158015612d8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db291906136a6565b145b8015612e3a5750601a54601854600654604051631b8bfea360e01b81526001600160a01b0392831692631b8bfea392612df792911690869060199060040161399e565b602060405180830381865afa158015612e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3891906136a6565b145b612e955760405162461bcd60e51b815260206004820152602660248201527f417474726962757465206973206e6f742073657420746f2072657175697265646044820152652076616c756560d01b6064820152608401610ba4565b6003546001600160a01b039081166000908152601c602081815260408084208985528252808420805460ff199081166001908117909255600454871686528484528286208a875284528286208054821683179055600554871686528484528286208987528452828620805482168317905560065487168652938352818520878652909252808420805490931682179092555490519216913480156108fc0292909190818181858888f19350505050158015612f54573d6000803e3d6000fd5b50604080513381526020810186905290810184905260608101839052608081018290527f502c4af0afde8aea2e7efd8ea4933fb7349ee09129a2f83cf3aa25b7d03136979060a00160405180910390a150505050565b6000546001600160a01b0316331480612fd257503360009081526002602052604090205460ff165b612fee5760405162461bcd60e51b8152600401610ba49061381b565b601854604051637690433960e11b81526001600160a01b039091169063ed20867290613024908790879087908790600401613915565b600060405180830381600087803b15801561303e57600080fd5b505af1158015613052573d6000803e3d6000fd5b5050505050505050565b60198054610a7b9061363c565b6000546001600160a01b031633146130935760405162461bcd60e51b8152600401610ba4906136bf565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe2cdf20f5c4ba7d71a1d649374dab6285996328cd5771c70d426b799638a43d39060200160405180910390a150565b6000546001600160a01b031633146131115760405162461bcd60e51b8152600401610ba4906136bf565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613173573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319791906136a6565b9091111592915050565b6000815180845260005b818110156131c7576020818501810151868301820152016131ab565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127e360208301846131a1565b6001600160a01b038116811461320f57600080fd5b50565b6000806040838503121561322557600080fd5b8235613230816131fa565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261326557600080fd5b813567ffffffffffffffff808211156132805761328061323e565b604051601f8301601f19908116603f011681019082821181831017156132a8576132a861323e565b816040528381528660208588010111156132c157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156132f657600080fd5b8335613301816131fa565b925060208401359150604084013567ffffffffffffffff81111561332457600080fd5b61333086828701613254565b9150509250925092565b60006020828403121561334c57600080fd5b81356127e3816131fa565b6000806040838503121561336a57600080fd5b823567ffffffffffffffff81111561338157600080fd5b61338d85828601613254565b95602094909401359450505050565b6020808252825182820181905260009190848201906040850190845b818110156133dd5783516001600160a01b0316835292840192918401916001016133b8565b50909695505050505050565b600080600080600060a0868803121561340157600080fd5b853594506020860135935060408601359250606086013591506080860135801515811461342d57600080fd5b809150509295509295909350565b6000806020838503121561344e57600080fd5b823567ffffffffffffffff8082111561346657600080fd5b818501915085601f83011261347a57600080fd5b81358181111561348957600080fd5b8660208260051b850101111561349e57600080fd5b60209290920196919550909350505050565b600080600080600060a086880312156134c857600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff8111156134fb57600080fd5b61350788828901613254565b9150509295509295909350565b60006020828403121561352657600080fd5b5035919050565b60008060008060008060c0878903121561354657600080fd5b86359550602087013594506040870135935060608701359250608087013561ffff8116811461357457600080fd5b915060a087013567ffffffffffffffff81111561359057600080fd5b61359c89828a01613254565b9150509295509295509295565b600080600080608085870312156135bf57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080608085870312156135f157600080fd5b84356135fc816131fa565b935060208501359250604085013567ffffffffffffffff81111561361f57600080fd5b61362b87828801613254565b949793965093946060013593505050565b600181811c9082168061365057607f821691505b60208210810361367057634e487b7160e01b600052602260045260246000fd5b50919050565b60018060a01b038416815282602082015260606040820152600061369d60608301846131a1565b95945050505050565b6000602082840312156136b857600080fd5b5051919050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b601f82111561374057600081815260208120601f850160051c8101602086101561371d5750805b601f850160051c820191505b8181101561373c57828155600101613729565b5050505b505050565b815167ffffffffffffffff81111561375f5761375f61323e565b6137738161376d845461363c565b846136f6565b602080601f8311600181146137a857600084156137905750858301515b600019600386901b1c1916600185901b17855561373c565b600085815260208120601f198616915b828110156137d7578886015182559484019460019091019084016137b8565b50858210156137f55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f43616c6c6572206973206e6f7420746865206f776e6572206f7220636f6e747260408201526534b13aba37b960d11b606082015260800190565b86815285602082015284604082015283606082015260c06080820152600061388c60c08301856131a1565b905060018060a01b03831660a0830152979650505050505050565b634e487b7160e01b600052601160045260246000fd5b61ffff8281168282160390808211156138d8576138d86138a7565b5092915050565b6000602082840312156138f157600080fd5b81516127e3816131fa565b60006001820161390e5761390e6138a7565b5060010190565b60018060a01b038516815283602082015260806040820152600061393c60808301856131a1565b905082606083015295945050505050565b87815286602082015285604082015284606082015261ffff8416608082015260e060a0820152600061398260e08301856131a1565b905060018060a01b03831660c083015298975050505050505050565b60018060a01b038416815260006020848184015260606040840152600084546139c68161363c565b80606087015260806001808416600081146139e85760018114613a0257613a30565b60ff1985168984015283151560051b890183019550613a30565b896000528660002060005b85811015613a285781548b8201860152908301908801613a0d565b8a0184019650505b50939a995050505050505050505056fea2646970667358221220dae20bc5e0c5919a5fe50744a1f6d859e7dfa928646a9ad427c487b7b81c257b64736f6c63430008150033
Deployed Bytecode
0x6080604052600436106103355760003560e01c806369fe0e2d116101ab578063c8e9db02116100f7578063eacc04bb11610095578063f75451f81161006f578063f75451f8146109f0578063f811ceb814610a10578063fabdc66a14610a30578063fd16f08c14610a5057600080fd5b8063eacc04bb1461099b578063ed208672146109bb578063f0f16c98146109db57600080fd5b8063d8770863116100d1578063d877086314610925578063d93f3d7314610945578063d94837fb14610965578063ddca3f431461098557600080fd5b8063c8e9db02146108d0578063ced72f87146108f0578063d155e8e01461090557600080fd5b8063ac9c973111610164578063b579184f1161013e578063b579184f1461085f578063bdc8ef371461087f578063c40047981461089f578063c8b22c0f146108bd57600080fd5b8063ac9c9731146107ff578063affdd3a11461081f578063b3f3ab5c1461083f57600080fd5b806369fe0e2d1461073f5780636ceaa0151461075f5780636d08557a1461077f57806376cb75091461079f578063850a1281146107bf5780638da5cb5b146107df57600080fd5b80634ed6446611610285578063584b86d2116102235780635c695015116101fd5780635c695015146106995780635d2d02f7146106b957806363d7adfd146106d95780636533ad2a146106f957600080fd5b8063584b86d2146106395780635944db6e146106595780635ac020531461067957600080fd5b806353a4b7c41161025f57806353a4b7c4146105b957806356e6db59146105d957806357302794146105f957806357ad4c7c1461061957600080fd5b80634ed64466146105635780634f40efdb14610583578063519cb17b146105a357600080fd5b80632bb7e019116102f2578063398d8c5d116102cc578063398d8c5d146104ee5780633b919928146105035780633cd9dad0146105235780633e6e02561461054357600080fd5b80632bb7e0191461048a5780633245e47a146104ac578063328ac965146104cc57600080fd5b806306fdde031461033a5780630f9285ef146103655780631b8bfea3146103bb5780631d0d35f5146103e95780631f6d4942146104225780632b03eb3614610452575b600080fd5b34801561034657600080fd5b5061034f610a6e565b60405161035c91906131e7565b60405180910390f35b34801561037157600080fd5b506103ab610380366004613212565b6001600160a01b03919091166000908152601c60209081526040808320938352929052205460ff1690565b604051901515815260200161035c565b3480156103c757600080fd5b506103db6103d63660046132e1565b610afc565b60405190815260200161035c565b3480156103f557600080fd5b506103ab61040436600461333a565b6001600160a01b031660009081526002602052604090205460ff1690565b34801561042e57600080fd5b506103ab61043d36600461333a565b60026020526000908152604090205460ff1681565b34801561045e57600080fd5b50600554610472906001600160a01b031681565b6040516001600160a01b03909116815260200161035c565b34801561049657600080fd5b506104aa6104a5366004613357565b610b7a565b005b3480156104b857600080fd5b50601854610472906001600160a01b031681565b3480156104d857600080fd5b506104e1610bc0565b60405161035c919061339c565b3480156104fa57600080fd5b506104e1610cb7565b34801561050f57600080fd5b50600954610472906001600160a01b031681565b34801561052f57600080fd5b50600d54610472906001600160a01b031681565b34801561054f57600080fd5b506104aa61055e36600461333a565b610fdf565b34801561056f57600080fd5b50600354610472906001600160a01b031681565b34801561058f57600080fd5b506104aa61059e36600461333a565b61102b565b3480156105af57600080fd5b506103db601a5481565b3480156105c557600080fd5b506104aa6105d43660046133e9565b611077565b3480156105e557600080fd5b506104aa6105f436600461343b565b611152565b34801561060557600080fd5b50601154610472906001600160a01b031681565b34801561062557600080fd5b506104aa61063436600461333a565b611650565b34801561064557600080fd5b506104aa6106543660046134b0565b61169c565b34801561066557600080fd5b50600f54610472906001600160a01b031681565b34801561068557600080fd5b50600754610472906001600160a01b031681565b3480156106a557600080fd5b50601654610472906001600160a01b031681565b3480156106c557600080fd5b506104aa6106d436600461333a565b6119ee565b3480156106e557600080fd5b50600454610472906001600160a01b031681565b34801561070557600080fd5b506103ab610714366004613212565b6001600160a01b03919091166000908152601b60209081526040808320938352929052205460ff1690565b34801561074b57600080fd5b506104aa61075a366004613514565b611a3a565b34801561076b57600080fd5b506104aa61077a36600461352d565b611a69565b34801561078b57600080fd5b50600154610472906001600160a01b031681565b3480156107ab57600080fd5b50600c54610472906001600160a01b031681565b3480156107cb57600080fd5b50601454610472906001600160a01b031681565b3480156107eb57600080fd5b50600054610472906001600160a01b031681565b34801561080b57600080fd5b50600654610472906001600160a01b031681565b34801561082b57600080fd5b50600a54610472906001600160a01b031681565b34801561084b57600080fd5b506104aa61085a36600461333a565b61273e565b34801561086b57600080fd5b506104aa61087a36600461333a565b612789565b34801561088b57600080fd5b506103ab61089a366004613212565b6127d7565b3480156108ab57600080fd5b506001546001600160a01b0316610472565b6104aa6108cb3660046135a9565b6127ea565b3480156108dc57600080fd5b50601054610472906001600160a01b031681565b3480156108fc57600080fd5b506017546103db565b34801561091157600080fd5b50601254610472906001600160a01b031681565b34801561093157600080fd5b50600e54610472906001600160a01b031681565b34801561095157600080fd5b50601554610472906001600160a01b031681565b34801561097157600080fd5b50600854610472906001600160a01b031681565b34801561099157600080fd5b506103db60175481565b3480156109a757600080fd5b50600b54610472906001600160a01b031681565b3480156109c757600080fd5b506104aa6109d63660046135db565b612faa565b3480156109e757600080fd5b5061034f61305c565b3480156109fc57600080fd5b506104aa610a0b36600461333a565b613069565b348015610a1c57600080fd5b50601354610472906001600160a01b031681565b348015610a3c57600080fd5b506104aa610a4b36600461333a565b6130e7565b348015610a5c57600080fd5b506018546001600160a01b0316610472565b601d8054610a7b9061363c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa79061363c565b8015610af45780601f10610ac957610100808354040283529160200191610af4565b820191906000526020600020905b815481529060010190602001808311610ad757829003601f168201915b505050505081565b601854604051631b8bfea360e01b81526000916001600160a01b031690631b8bfea390610b3190879087908790600401613676565b602060405180830381865afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7291906136a6565b949350505050565b6000546001600160a01b03163314610bad5760405162461bcd60e51b8152600401610ba4906136bf565b60405180910390fd5b6019610bb98382613745565b50601a5550565b60408051600480825260a082019092526060916000919060208201608080368337505060035482519293506001600160a01b031691839150600090610c0757610c07613805565b6001600160a01b039283166020918202929092010152600454825191169082906001908110610c3857610c38613805565b6001600160a01b039283166020918202929092010152600554825191169082906002908110610c6957610c69613805565b6001600160a01b039283166020918202929092010152600654825191169082906003908110610c9a57610c9a613805565b6001600160a01b0390921660209283029190910190910152919050565b6040805160108082526102208201909252606091600091906020820161020080368337505060075482519293506001600160a01b031691839150600090610d0057610d00613805565b6001600160a01b039283166020918202929092010152600854825191169082906001908110610d3157610d31613805565b6001600160a01b039283166020918202929092010152600954825191169082906002908110610d6257610d62613805565b6001600160a01b039283166020918202929092010152600a54825191169082906003908110610d9357610d93613805565b6001600160a01b039283166020918202929092010152600b54825191169082906004908110610dc457610dc4613805565b6001600160a01b039283166020918202929092010152600c54825191169082906005908110610df557610df5613805565b6001600160a01b039283166020918202929092010152600d54825191169082906006908110610e2657610e26613805565b6001600160a01b039283166020918202929092010152600e54825191169082906007908110610e5757610e57613805565b6001600160a01b039283166020918202929092010152600f54825191169082906008908110610e8857610e88613805565b6001600160a01b039283166020918202929092010152601054825191169082906009908110610eb957610eb9613805565b6001600160a01b03928316602091820292909201015260115482519116908290600a908110610eea57610eea613805565b6001600160a01b03928316602091820292909201015260125482519116908290600b908110610f1b57610f1b613805565b6001600160a01b03928316602091820292909201015260135482519116908290600c908110610f4c57610f4c613805565b6001600160a01b03928316602091820292909201015260145482519116908290600d908110610f7d57610f7d613805565b6001600160a01b03928316602091820292909201015260155482519116908290600e908110610fae57610fae613805565b6001600160a01b03928316602091820292909201015260165482519116908290600f908110610c9a57610c9a613805565b6000546001600160a01b031633146110095760405162461bcd60e51b8152600401610ba4906136bf565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146110555760405162461bcd60e51b8152600401610ba4906136bf565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061109f57503360009081526002602052604090205460ff165b6110bb5760405162461bcd60e51b8152600401610ba49061381b565b6003546001600160a01b039081166000908152601c60208181526040808420998452988152888320805495151560ff199687168117909155600454851684528282528984209884529781528883208054861689179055600554841683528181528883209683529586528782208054851688179055600654909216815290845285812092815291909252929092208054909216179055565b6000546001600160a01b0316331461117c5760405162461bcd60e51b8152600401610ba4906136bf565b601081146111cc5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964206e756d626572206f662061646472657373657300000000006044820152606401610ba4565b818160008181106111df576111df613805565b90506020020160208101906111f4919061333a565b600780546001600160a01b0319166001600160a01b03929092169190911790558181600181811061122757611227613805565b905060200201602081019061123c919061333a565b600880546001600160a01b0319166001600160a01b03929092169190911790558181600281811061126f5761126f613805565b9050602002016020810190611284919061333a565b600980546001600160a01b0319166001600160a01b0392909216919091179055818160038181106112b7576112b7613805565b90506020020160208101906112cc919061333a565b600a80546001600160a01b0319166001600160a01b0392909216919091179055818160048181106112ff576112ff613805565b9050602002016020810190611314919061333a565b600b80546001600160a01b0319166001600160a01b03929092169190911790558181600581811061134757611347613805565b905060200201602081019061135c919061333a565b600c80546001600160a01b0319166001600160a01b03929092169190911790558181600681811061138f5761138f613805565b90506020020160208101906113a4919061333a565b600d80546001600160a01b0319166001600160a01b0392909216919091179055818160078181106113d7576113d7613805565b90506020020160208101906113ec919061333a565b600e80546001600160a01b0319166001600160a01b03929092169190911790558181600881811061141f5761141f613805565b9050602002016020810190611434919061333a565b600f80546001600160a01b0319166001600160a01b03929092169190911790558181600981811061146757611467613805565b905060200201602081019061147c919061333a565b601080546001600160a01b0319166001600160a01b03929092169190911790558181600a8181106114af576114af613805565b90506020020160208101906114c4919061333a565b601180546001600160a01b0319166001600160a01b03929092169190911790558181600b8181106114f7576114f7613805565b905060200201602081019061150c919061333a565b601280546001600160a01b0319166001600160a01b03929092169190911790558181600c81811061153f5761153f613805565b9050602002016020810190611554919061333a565b601380546001600160a01b0319166001600160a01b03929092169190911790558181600d81811061158757611587613805565b905060200201602081019061159c919061333a565b601480546001600160a01b0319166001600160a01b03929092169190911790558181600e8181106115cf576115cf613805565b90506020020160208101906115e4919061333a565b601580546001600160a01b0319166001600160a01b03929092169190911790558181600f81811061161757611617613805565b905060200201602081019061162c919061333a565b601680546001600160a01b0319166001600160a01b03929092169190911790555050565b6000546001600160a01b0316331461167a5760405162461bcd60e51b8152600401610ba4906136bf565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806116c457503360009081526002602052604090205460ff165b6116e05760405162461bcd60e51b8152600401610ba49061381b565b6003546001600160a01b03166000908152601b6020908152604080832088845290915290205460ff16158061173b57506004546001600160a01b03166000908152601b6020908152604080832087845290915290205460ff16155b8061176c57506005546001600160a01b03166000908152601b6020908152604080832086845290915290205460ff16155b8061179d57506006546001600160a01b03166000908152601b6020908152604080832085845290915290205460ff16155b6117fd5760405162461bcd60e51b815260206004820152602b60248201527f4f6e65206f72206d6f726520746f6b656e732061726520616c7265616479206960448201526a3710309036b4b9b9b4b7b760a91b6064820152608401610ba4565b6003546001600160a01b03166000908152601c6020908152604080832088845290915290205460ff16801561185757506004546001600160a01b03166000908152601c6020908152604080832087845290915290205460ff165b801561188857506005546001600160a01b03166000908152601c6020908152604080832086845290915290205460ff165b80156118b957506006546001600160a01b03166000908152601c6020908152604080832085845290915290205460ff165b6119165760405162461bcd60e51b815260206004820152602860248201527f4f6e65206f72206d6f726520746f6b656e732068617665206e6f742070616964604482015267207468652066656560c01b6064820152608401610ba4565b6003546001600160a01b039081166000908152601b602081815260408084208a855282528084208054600160ff199182168117909255600454871686528484528286208b875284528286208054821683179055600554871686528484528286208a875284528286208054821683179055600654909616855292825280842087855290915291829020805490931617909155517fcc6d4030c8fb2a413e63b90ca72bbb103a627967a25155efb8a3eee2545c38b6906119df90879087908790879087903390613861565b60405180910390a15050505050565b6000546001600160a01b03163314611a185760405162461bcd60e51b8152600401610ba4906136bf565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314611a645760405162461bcd60e51b8152600401610ba4906136bf565b601755565b6000546001600160a01b0316331480611a9157503360009081526002602052604090205460ff165b611aad5760405162461bcd60e51b8152600401610ba49061381b565b6003546001600160a01b03166000908152601b6020908152604080832089845290915290205460ff168015611b0757506004546001600160a01b03166000908152601b6020908152604080832088845290915290205460ff165b8015611b3857506005546001600160a01b03166000908152601b6020908152604080832087845290915290205460ff165b8015611b6957506006546001600160a01b03166000908152601b6020908152604080832086845290915290205460ff165b611bcf5760405162461bcd60e51b815260206004820152603160248201527f4f6e65206f72206d6f726520746f6b656e7320617265206e6f74206375727265604482015270373a363c9034b710309036b4b9b9b4b7b760791b6064820152608401610ba4565b60035460405163966d964b60e01b815260048101889052600060248201526001600160a01b039091169063966d964b90604401600060405180830381600087803b158015611c1c57600080fd5b505af1158015611c30573d6000803e3d6000fd5b50506004805460405163966d964b60e01b8152918201899052600060248301526001600160a01b0316925063966d964b9150604401600060405180830381600087803b158015611c7f57600080fd5b505af1158015611c93573d6000803e3d6000fd5b505060055460405163966d964b60e01b815260048101889052600060248201526001600160a01b03909116925063966d964b9150604401600060405180830381600087803b158015611ce457600080fd5b505af1158015611cf8573d6000803e3d6000fd5b505060065460405163966d964b60e01b815260048101879052600060248201526001600160a01b03909116925063966d964b9150604401600060405180830381600087803b158015611d4957600080fd5b505af1158015611d5d573d6000803e3d6000fd5b505060408051610200810182526007546001600160a01b03908116825260085481166020830152600954811692820192909252600a5482166060820152600b5482166080820152600c54821660a0820152600d54821660c0820152600e54821660e0820152600f548216610100820152601054821661012082015260115482166101408201526012548216610160820152601354821661018082015260145482166101a082015260155482166101c08201526016549091166101e082015291505061ffff831615801590611e36575060108361ffff1611155b611e825760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642077686963684368696c642076616c756500000000000000006044820152606401610ba4565b600081611e906001866138bd565b61ffff1660108110611ea457611ea4613805565b60200201516003546040516331a9108f60e11b8152600481018b90529192506001600160a01b0380841692634cc482c1929190911690636352211e90602401602060405180830381865afa158015611f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2491906138df565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260016024820152604401600060405180830381600087803b158015611f6c57600080fd5b505af1158015611f80573d6000803e3d6000fd5b505050506000601b6000600360009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060008a815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601b6000600460009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600089815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601b6000600560009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600088815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601b6000600660009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600087815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600360009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002060008a815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600460009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600089815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600560009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600088815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601c6000600660009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020600087815260200190815260200160002060006101000a81548160ff0219169083151502179055506000601860009054906101000a90046001600160a01b03166001600160a01b0316631b8bfea3600360009054906101000a90046001600160a01b03168b876040518463ffffffff1660e01b815260040161230093929190613676565b602060405180830381865afa15801561231d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234191906136a6565b60185460048054604051631b8bfea360e01b81529394506000936001600160a01b0393841693631b8bfea39361237f93909116918e918b9101613676565b602060405180830381865afa15801561239c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c091906136a6565b601854600554604051631b8bfea360e01b81529293506000926001600160a01b0392831692631b8bfea3926123fe929116908d908b90600401613676565b602060405180830381865afa15801561241b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243f91906136a6565b601854600654604051631b8bfea360e01b81529293506000926001600160a01b0392831692631b8bfea39261247d929116908d908c90600401613676565b602060405180830381865afa15801561249a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124be91906136a6565b9050836124ca816138fc565b94505082806124d8906138fc565b93505081806124e6906138fc565b92505080806124f4906138fc565b915050601860009054906101000a90046001600160a01b03166001600160a01b031663ed208672600360009054906101000a90046001600160a01b03168e8a886040518563ffffffff1660e01b81526004016125539493929190613915565b600060405180830381600087803b15801561256d57600080fd5b505af1158015612581573d6000803e3d6000fd5b50505050601860009054906101000a90046001600160a01b03166001600160a01b031663ed208672600460009054906101000a90046001600160a01b03168d8a876040518563ffffffff1660e01b81526004016125e19493929190613915565b600060405180830381600087803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b5050601854600554604051637690433960e11b81526001600160a01b03928316945063ed208672935061264e92909116908e908c908890600401613915565b600060405180830381600087803b15801561266857600080fd5b505af115801561267c573d6000803e3d6000fd5b5050601854600654604051637690433960e11b81526001600160a01b03928316945063ed20867293506126bb92909116908d908c908790600401613915565b600060405180830381600087803b1580156126d557600080fd5b505af11580156126e9573d6000803e3d6000fd5b505050507f8da2cbc0e8d30ee9589f91476da9a790be9a8b2ff2282ffa176ee56da4f3c0288c8c8c8c8c8c33604051612728979695949392919061394d565b60405180910390a1505050505050505050505050565b6000546001600160a01b031633146127685760405162461bcd60e51b8152600401610ba4906136bf565b6001600160a01b03166000908152600260205260409020805460ff19169055565b6000546001600160a01b031633146127b35760405162461bcd60e51b8152600401610ba4906136bf565b6001600160a01b03166000908152600260205260409020805460ff19166001179055565b60006127e38383613133565b9392505050565b60175434146128325760405162461bcd60e51b8152602060048201526014602482015273125b98dbdc9c9958dd0819995948185b5bdd5b9d60621b6044820152606401610ba4565b600354612848906001600160a01b031685613133565b80156128655750600454612865906001600160a01b031684613133565b80156128825750600554612882906001600160a01b031683613133565b801561289f575060065461289f906001600160a01b031682613133565b6128eb5760405162461bcd60e51b815260206004820152601f60248201527f4f6e65206f72206d6f726520746f6b656e7320646f206e6f74206578697374006044820152606401610ba4565b6003546040516331a9108f60e11b81526004810186905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612934573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295891906138df565b6001600160a01b0316146129ba5760405162461bcd60e51b815260206004820152602360248201527f43616c6c657220646f6573206e6f74206f776e207468652052796b657220746f60448201526235b2b760e91b6064820152608401610ba4565b600480546040516331a9108f60e11b815291820185905233916001600160a01b0390911690636352211e90602401602060405180830381865afa158015612a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2991906138df565b6001600160a01b031614612a8a5760405162461bcd60e51b815260206004820152602260248201527f43616c6c657220646f6573206e6f74206f776e20746865204c756e6120746f6b60448201526132b760f11b6064820152608401610ba4565b6005546040516331a9108f60e11b81526004810184905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af791906138df565b6001600160a01b031614612b585760405162461bcd60e51b815260206004820152602260248201527f43616c6c657220646f6573206e6f74206f776e20746865204172696120746f6b60448201526132b760f11b6064820152608401610ba4565b6006546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e90602401602060405180830381865afa158015612ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc591906138df565b6001600160a01b031614612c2a5760405162461bcd60e51b815260206004820152602660248201527f43616c6c657220646f6573206e6f74206f776e20746865205468616464657573604482015265103a37b5b2b760d11b6064820152608401610ba4565b601a54601854600354604051631b8bfea360e01b81526001600160a01b0392831692631b8bfea392612c6692911690899060199060040161399e565b602060405180830381865afa158015612c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca791906136a6565b148015612d2e5750601a5460185460048054604051631b8bfea360e01b81526001600160a01b0393841693631b8bfea393612ceb939091169189916019910161399e565b602060405180830381865afa158015612d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d2c91906136a6565b145b8015612db45750601a54601854600554604051631b8bfea360e01b81526001600160a01b0392831692631b8bfea392612d7192911690879060199060040161399e565b602060405180830381865afa158015612d8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db291906136a6565b145b8015612e3a5750601a54601854600654604051631b8bfea360e01b81526001600160a01b0392831692631b8bfea392612df792911690869060199060040161399e565b602060405180830381865afa158015612e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e3891906136a6565b145b612e955760405162461bcd60e51b815260206004820152602660248201527f417474726962757465206973206e6f742073657420746f2072657175697265646044820152652076616c756560d01b6064820152608401610ba4565b6003546001600160a01b039081166000908152601c602081815260408084208985528252808420805460ff199081166001908117909255600454871686528484528286208a875284528286208054821683179055600554871686528484528286208987528452828620805482168317905560065487168652938352818520878652909252808420805490931682179092555490519216913480156108fc0292909190818181858888f19350505050158015612f54573d6000803e3d6000fd5b50604080513381526020810186905290810184905260608101839052608081018290527f502c4af0afde8aea2e7efd8ea4933fb7349ee09129a2f83cf3aa25b7d03136979060a00160405180910390a150505050565b6000546001600160a01b0316331480612fd257503360009081526002602052604090205460ff165b612fee5760405162461bcd60e51b8152600401610ba49061381b565b601854604051637690433960e11b81526001600160a01b039091169063ed20867290613024908790879087908790600401613915565b600060405180830381600087803b15801561303e57600080fd5b505af1158015613052573d6000803e3d6000fd5b5050505050505050565b60198054610a7b9061363c565b6000546001600160a01b031633146130935760405162461bcd60e51b8152600401610ba4906136bf565b600180546001600160a01b0319166001600160a01b0383169081179091556040519081527fe2cdf20f5c4ba7d71a1d649374dab6285996328cd5771c70d426b799638a43d39060200160405180910390a150565b6000546001600160a01b031633146131115760405162461bcd60e51b8152600401610ba4906136bf565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000826001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613173573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061319791906136a6565b9091111592915050565b6000815180845260005b818110156131c7576020818501810151868301820152016131ab565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127e360208301846131a1565b6001600160a01b038116811461320f57600080fd5b50565b6000806040838503121561322557600080fd5b8235613230816131fa565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261326557600080fd5b813567ffffffffffffffff808211156132805761328061323e565b604051601f8301601f19908116603f011681019082821181831017156132a8576132a861323e565b816040528381528660208588010111156132c157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000606084860312156132f657600080fd5b8335613301816131fa565b925060208401359150604084013567ffffffffffffffff81111561332457600080fd5b61333086828701613254565b9150509250925092565b60006020828403121561334c57600080fd5b81356127e3816131fa565b6000806040838503121561336a57600080fd5b823567ffffffffffffffff81111561338157600080fd5b61338d85828601613254565b95602094909401359450505050565b6020808252825182820181905260009190848201906040850190845b818110156133dd5783516001600160a01b0316835292840192918401916001016133b8565b50909695505050505050565b600080600080600060a0868803121561340157600080fd5b853594506020860135935060408601359250606086013591506080860135801515811461342d57600080fd5b809150509295509295909350565b6000806020838503121561344e57600080fd5b823567ffffffffffffffff8082111561346657600080fd5b818501915085601f83011261347a57600080fd5b81358181111561348957600080fd5b8660208260051b850101111561349e57600080fd5b60209290920196919550909350505050565b600080600080600060a086880312156134c857600080fd5b85359450602086013593506040860135925060608601359150608086013567ffffffffffffffff8111156134fb57600080fd5b61350788828901613254565b9150509295509295909350565b60006020828403121561352657600080fd5b5035919050565b60008060008060008060c0878903121561354657600080fd5b86359550602087013594506040870135935060608701359250608087013561ffff8116811461357457600080fd5b915060a087013567ffffffffffffffff81111561359057600080fd5b61359c89828a01613254565b9150509295509295509295565b600080600080608085870312156135bf57600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080608085870312156135f157600080fd5b84356135fc816131fa565b935060208501359250604085013567ffffffffffffffff81111561361f57600080fd5b61362b87828801613254565b949793965093946060013593505050565b600181811c9082168061365057607f821691505b60208210810361367057634e487b7160e01b600052602260045260246000fd5b50919050565b60018060a01b038416815282602082015260606040820152600061369d60608301846131a1565b95945050505050565b6000602082840312156136b857600080fd5b5051919050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b601f82111561374057600081815260208120601f850160051c8101602086101561371d5750805b601f850160051c820191505b8181101561373c57828155600101613729565b5050505b505050565b815167ffffffffffffffff81111561375f5761375f61323e565b6137738161376d845461363c565b846136f6565b602080601f8311600181146137a857600084156137905750858301515b600019600386901b1c1916600185901b17855561373c565b600085815260208120601f198616915b828110156137d7578886015182559484019460019091019084016137b8565b50858210156137f55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f43616c6c6572206973206e6f7420746865206f776e6572206f7220636f6e747260408201526534b13aba37b960d11b606082015260800190565b86815285602082015284604082015283606082015260c06080820152600061388c60c08301856131a1565b905060018060a01b03831660a0830152979650505050505050565b634e487b7160e01b600052601160045260246000fd5b61ffff8281168282160390808211156138d8576138d86138a7565b5092915050565b6000602082840312156138f157600080fd5b81516127e3816131fa565b60006001820161390e5761390e6138a7565b5060010190565b60018060a01b038516815283602082015260806040820152600061393c60808301856131a1565b905082606083015295945050505050565b87815286602082015285604082015284606082015261ffff8416608082015260e060a0820152600061398260e08301856131a1565b905060018060a01b03831660c083015298975050505050505050565b60018060a01b038416815260006020848184015260606040840152600084546139c68161363c565b80606087015260806001808416600081146139e85760018114613a0257613a30565b60ff1985168984015283151560051b890183019550613a30565b896000528660002060005b85811015613a285781548b8201860152908301908801613a0d565b8a0184019650505b50939a995050505050505050505056fea2646970667358221220dae20bc5e0c5919a5fe50744a1f6d859e7dfa928646a9ad427c487b7b81c257b64736f6c63430008150033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in GLMR
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.