Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 273 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update And Skip ... | 20982791 | 37 days ago | IN | 0 ETH | 0.00279624 | ||||
Update And Skip ... | 20702467 | 76 days ago | IN | 0 ETH | 0.00035104 | ||||
Update And Skip ... | 20702404 | 76 days ago | IN | 0 ETH | 0.00032612 | ||||
Update And Skip ... | 20702362 | 76 days ago | IN | 0 ETH | 0.00035064 | ||||
Update And Skip ... | 20702324 | 76 days ago | IN | 0 ETH | 0.00031274 | ||||
Update And Skip ... | 20246867 | 140 days ago | IN | 0 ETH | 0.00019986 | ||||
Update And Skip ... | 20246640 | 140 days ago | IN | 0 ETH | 0.00022922 | ||||
Update And Skip ... | 19867161 | 193 days ago | IN | 0 ETH | 0.0013088 | ||||
Update And Skip ... | 19867088 | 193 days ago | IN | 0 ETH | 0.00145901 | ||||
Update And Skip ... | 19763290 | 207 days ago | IN | 0 ETH | 0.00234588 | ||||
Update And Skip ... | 19678124 | 219 days ago | IN | 0 ETH | 0.00392499 | ||||
Update And Skip ... | 19666227 | 221 days ago | IN | 0 ETH | 0.00208097 | ||||
Update And Skip ... | 19481163 | 247 days ago | IN | 0 ETH | 0.00319794 | ||||
Update And Skip ... | 19458561 | 250 days ago | IN | 0 ETH | 0.00572342 | ||||
Update And Skip ... | 19433999 | 253 days ago | IN | 0 ETH | 0.01719163 | ||||
Update And Skip ... | 19433926 | 253 days ago | IN | 0 ETH | 0.01381145 | ||||
Update And Skip ... | 19425537 | 255 days ago | IN | 0 ETH | 0.0178864 | ||||
Update And Skip ... | 19424303 | 255 days ago | IN | 0 ETH | 0.0098029 | ||||
Update And Skip ... | 19421995 | 255 days ago | IN | 0 ETH | 0.01304327 | ||||
Update And Skip ... | 19421962 | 255 days ago | IN | 0 ETH | 0.01471653 | ||||
Update And Skip ... | 19150704 | 293 days ago | IN | 0 ETH | 0.00331631 | ||||
Update And Skip ... | 19143425 | 294 days ago | IN | 0 ETH | 0.00377916 | ||||
Update And Skip ... | 19126430 | 296 days ago | IN | 0 ETH | 0.00477873 | ||||
Update And Skip ... | 19116254 | 298 days ago | IN | 0 ETH | 0.00315722 | ||||
Update And Skip ... | 19111123 | 299 days ago | IN | 0 ETH | 0.00139286 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
LogosCrafter
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 20 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; import { LogosTypes as L } from "./LogosTypes.sol"; interface ILogosTraits { function charactersByID(uint8) external view returns (L.CharacterInfo memory); function shapesPrimaryByID(uint8) external view returns (L.ShapeInfo memory); function shapesSecondaryByID(uint8) external view returns (L.ShapeInfo memory); function colorPalettesByID(uint16) external view returns (L.ColorPalette memory); } interface ERC721 { function ownerOf(uint256) external view returns (address); } contract LogosCrafter is Ownable { bool public locked; bool public paused; ERC721 public logosContract; ILogosTraits public traitsContract; struct Hash { bool taken; uint16 tokenID; } mapping (uint256 => L.Logo) public _logosByTokenID; mapping (bytes32 => Hash) public _characterHashes; mapping (bytes32 => Hash) public _shapeHashes; event TokenUpdated(uint256 tokenID, L.Logo logo, bool isFirstUpdate); constructor(address logosContractAddress, address traitsContactAddress) Ownable() { logosContract = ERC721(logosContractAddress); traitsContract = ILogosTraits(traitsContactAddress); } function lock(string memory ack) external onlyOwner { require(keccak256(abi.encodePacked(ack)) == keccak256(abi.encodePacked("This action is permanent")), "Incorrect ack"); locked = true; } function setPaused(bool _paused) external onlyOwner { paused = _paused; } function logosByTokenID(uint256 tokenID) external view returns (L.Logo memory) { L.Logo memory logo = _logosByTokenID[tokenID]; check(tokenID, logo); return _logosByTokenID[tokenID]; } function update(uint256 tokenID, L.Logo memory logo) public { _update(tokenID, logo, false); } function updateAndSkipChecks(uint256 tokenID, L.Logo memory logo) public { _update(tokenID, logo, true); } function check(uint256 tokenID, L.Logo memory logo) public view { L.CharacterInfo memory character = traitsContract.charactersByID(logo.characterSelections.characterID); L.ShapeInfo memory primaryShape = traitsContract.shapesPrimaryByID(logo.shapeSelections.primaryShape); L.ShapeInfo memory secondaryShape = traitsContract.shapesSecondaryByID(logo.shapeSelections.secondaryShape); L.ColorPalette memory colorPalette = traitsContract.colorPalettesByID(logo.colorPalette); require(character.enabled, "Character not enabled"); require(primaryShape.enabled, "Primary shape not enabled"); require(primaryShape.numVariants >= logo.shapeSelections.primaryShapeVariant, "Primary shape variant out of range"); require(secondaryShape.enabled, "Secondary shape not enabled"); require(secondaryShape.numVariants >= logo.shapeSelections.secondaryShapeVariant, "Secondary shape variant out of range"); require(colorPalette.enabled, "Color palette not enabled"); require(logo.characterSelections.slotSelections.length == character.slotOffsets.length, "Wrong number of slot selections"); // check that no bonus traits were selected if not a Blitmap base if (tokenID >= 1700) { require(!character.bodies[logo.characterSelections.body].isBonus, "Bonus body selected"); require(!character.heads[logo.characterSelections.head].isBonus, "Bonus head selected"); require(!colorPalette.isBonus, "Bonus color palette selected"); } uint256 slotSelectionLength = logo.characterSelections.slotSelections.length; for (uint8 i = 0; i < slotSelectionLength; i++) { // check that slot selection is in range uint256 lengthOfSlot; if (i < slotSelectionLength - 1) { lengthOfSlot = character.slotOffsets[i + 1] - character.slotOffsets[i]; } else { lengthOfSlot = character.slotOptions.length - character.slotOffsets[i]; } if (logo.characterSelections.slotSelections[i] >= lengthOfSlot) { revert("Slot selection out of range"); } uint8 offset = character.slotOffsets[i] + logo.characterSelections.slotSelections[i]; // Check that the selected trait is not empty require(bytes(character.slotOptions[offset].name).length > 0, "Empty trait selected"); // check that no bonus traits were selected if not a Blitmap base if (tokenID >= 1700) { require(!character.slotOptions[offset].isBonus, "Bonus trait selected"); } } } function _update(uint256 tokenID, L.Logo memory logo, bool skipExternalChecks) internal { require(!locked, "Locked"); require(!paused, "Paused"); require(logosContract.ownerOf(tokenID) == msg.sender, "Not owner of Logo"); // external checks can be skipped to optimize gas usage, but validity checks (except for collisions) are lost if (!skipExternalChecks) { check(tokenID, logo); } bytes32 characterHash = keccak256( abi.encode( logo.characterSelections.characterID, logo.characterSelections.slotSelections ) ); bytes32 shapeHash = keccak256( abi.encode( logo.shapeSelections.primaryShape, logo.shapeSelections.primaryShapeVariant, logo.shapeSelections.secondaryShape, logo.shapeSelections.secondaryShapeVariant ) ); // character/shape hash must be unused or already owned by this token require(!_characterHashes[characterHash].taken || _characterHashes[characterHash].tokenID == tokenID, "Character combination already used"); require(!_shapeHashes[shapeHash].taken || _shapeHashes[shapeHash].tokenID == tokenID, "Shape combination already used"); // delete old hash if logo was enabled once already if (_logosByTokenID[tokenID].enabled) { bytes32 oldCharacterHash = keccak256( abi.encode( _logosByTokenID[tokenID].characterSelections.characterID, _logosByTokenID[tokenID].characterSelections.slotSelections ) ); bytes32 oldShapeHash = keccak256( abi.encode( _logosByTokenID[tokenID].shapeSelections.primaryShape, _logosByTokenID[tokenID].shapeSelections.primaryShapeVariant, _logosByTokenID[tokenID].shapeSelections.secondaryShape, _logosByTokenID[tokenID].shapeSelections.secondaryShapeVariant ) ); delete _characterHashes[oldCharacterHash]; delete _shapeHashes[oldShapeHash]; } _characterHashes[characterHash].taken = true; _characterHashes[characterHash].tokenID = uint16(tokenID); _shapeHashes[shapeHash].taken = true; _shapeHashes[shapeHash].tokenID = uint16(tokenID); logo.enabled = true; bool isFirstUpdate = !_logosByTokenID[tokenID].enabled; _logosByTokenID[tokenID] = logo; emit TokenUpdated(tokenID, logo, isFirstUpdate); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.20; library LogosTypes { struct TraitChoice { string name; bool isBonus; } struct CharacterInfo { string name; TraitChoice[] bodies; TraitChoice[] heads; string[] slotNames; uint8[] slotOffsets; TraitChoice[] slotOptions; bool enabled; } struct ShapeInfo { string name; string companyName; uint8 numVariants; // number of ADDITIONAL variants, not including the base bool enabled; } struct ColorPalette { string name; bool isBonus; string colorA; string colorB; bool enabled; } struct CharacterSelections { uint8 characterID; uint8 body; uint8 head; uint8[] slotSelections; } struct ShapeSelections { uint8 primaryShape; uint8 primaryShapeVariant; uint8 secondaryShape; uint8 secondaryShapeVariant; } struct Logo { bool enabled; CharacterSelections characterSelections; ShapeSelections shapeSelections; uint16 colorPalette; } }
{ "optimizer": { "enabled": true, "runs": 20 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"logosContractAddress","type":"address"},{"internalType":"address","name":"traitsContactAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenID","type":"uint256"},{"components":[{"internalType":"bool","name":"enabled","type":"bool"},{"components":[{"internalType":"uint8","name":"characterID","type":"uint8"},{"internalType":"uint8","name":"body","type":"uint8"},{"internalType":"uint8","name":"head","type":"uint8"},{"internalType":"uint8[]","name":"slotSelections","type":"uint8[]"}],"internalType":"struct LogosTypes.CharacterSelections","name":"characterSelections","type":"tuple"},{"components":[{"internalType":"uint8","name":"primaryShape","type":"uint8"},{"internalType":"uint8","name":"primaryShapeVariant","type":"uint8"},{"internalType":"uint8","name":"secondaryShape","type":"uint8"},{"internalType":"uint8","name":"secondaryShapeVariant","type":"uint8"}],"internalType":"struct LogosTypes.ShapeSelections","name":"shapeSelections","type":"tuple"},{"internalType":"uint16","name":"colorPalette","type":"uint16"}],"indexed":false,"internalType":"struct LogosTypes.Logo","name":"logo","type":"tuple"},{"indexed":false,"internalType":"bool","name":"isFirstUpdate","type":"bool"}],"name":"TokenUpdated","type":"event"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_characterHashes","outputs":[{"internalType":"bool","name":"taken","type":"bool"},{"internalType":"uint16","name":"tokenID","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_logosByTokenID","outputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"components":[{"internalType":"uint8","name":"characterID","type":"uint8"},{"internalType":"uint8","name":"body","type":"uint8"},{"internalType":"uint8","name":"head","type":"uint8"},{"internalType":"uint8[]","name":"slotSelections","type":"uint8[]"}],"internalType":"struct LogosTypes.CharacterSelections","name":"characterSelections","type":"tuple"},{"components":[{"internalType":"uint8","name":"primaryShape","type":"uint8"},{"internalType":"uint8","name":"primaryShapeVariant","type":"uint8"},{"internalType":"uint8","name":"secondaryShape","type":"uint8"},{"internalType":"uint8","name":"secondaryShapeVariant","type":"uint8"}],"internalType":"struct LogosTypes.ShapeSelections","name":"shapeSelections","type":"tuple"},{"internalType":"uint16","name":"colorPalette","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_shapeHashes","outputs":[{"internalType":"bool","name":"taken","type":"bool"},{"internalType":"uint16","name":"tokenID","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"components":[{"internalType":"bool","name":"enabled","type":"bool"},{"components":[{"internalType":"uint8","name":"characterID","type":"uint8"},{"internalType":"uint8","name":"body","type":"uint8"},{"internalType":"uint8","name":"head","type":"uint8"},{"internalType":"uint8[]","name":"slotSelections","type":"uint8[]"}],"internalType":"struct LogosTypes.CharacterSelections","name":"characterSelections","type":"tuple"},{"components":[{"internalType":"uint8","name":"primaryShape","type":"uint8"},{"internalType":"uint8","name":"primaryShapeVariant","type":"uint8"},{"internalType":"uint8","name":"secondaryShape","type":"uint8"},{"internalType":"uint8","name":"secondaryShapeVariant","type":"uint8"}],"internalType":"struct LogosTypes.ShapeSelections","name":"shapeSelections","type":"tuple"},{"internalType":"uint16","name":"colorPalette","type":"uint16"}],"internalType":"struct LogosTypes.Logo","name":"logo","type":"tuple"}],"name":"check","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"ack","type":"string"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"logosByTokenID","outputs":[{"components":[{"internalType":"bool","name":"enabled","type":"bool"},{"components":[{"internalType":"uint8","name":"characterID","type":"uint8"},{"internalType":"uint8","name":"body","type":"uint8"},{"internalType":"uint8","name":"head","type":"uint8"},{"internalType":"uint8[]","name":"slotSelections","type":"uint8[]"}],"internalType":"struct LogosTypes.CharacterSelections","name":"characterSelections","type":"tuple"},{"components":[{"internalType":"uint8","name":"primaryShape","type":"uint8"},{"internalType":"uint8","name":"primaryShapeVariant","type":"uint8"},{"internalType":"uint8","name":"secondaryShape","type":"uint8"},{"internalType":"uint8","name":"secondaryShapeVariant","type":"uint8"}],"internalType":"struct LogosTypes.ShapeSelections","name":"shapeSelections","type":"tuple"},{"internalType":"uint16","name":"colorPalette","type":"uint16"}],"internalType":"struct LogosTypes.Logo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"logosContract","outputs":[{"internalType":"contract ERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"traitsContract","outputs":[{"internalType":"contract ILogosTraits","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"components":[{"internalType":"bool","name":"enabled","type":"bool"},{"components":[{"internalType":"uint8","name":"characterID","type":"uint8"},{"internalType":"uint8","name":"body","type":"uint8"},{"internalType":"uint8","name":"head","type":"uint8"},{"internalType":"uint8[]","name":"slotSelections","type":"uint8[]"}],"internalType":"struct LogosTypes.CharacterSelections","name":"characterSelections","type":"tuple"},{"components":[{"internalType":"uint8","name":"primaryShape","type":"uint8"},{"internalType":"uint8","name":"primaryShapeVariant","type":"uint8"},{"internalType":"uint8","name":"secondaryShape","type":"uint8"},{"internalType":"uint8","name":"secondaryShapeVariant","type":"uint8"}],"internalType":"struct LogosTypes.ShapeSelections","name":"shapeSelections","type":"tuple"},{"internalType":"uint16","name":"colorPalette","type":"uint16"}],"internalType":"struct LogosTypes.Logo","name":"logo","type":"tuple"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"components":[{"internalType":"bool","name":"enabled","type":"bool"},{"components":[{"internalType":"uint8","name":"characterID","type":"uint8"},{"internalType":"uint8","name":"body","type":"uint8"},{"internalType":"uint8","name":"head","type":"uint8"},{"internalType":"uint8[]","name":"slotSelections","type":"uint8[]"}],"internalType":"struct LogosTypes.CharacterSelections","name":"characterSelections","type":"tuple"},{"components":[{"internalType":"uint8","name":"primaryShape","type":"uint8"},{"internalType":"uint8","name":"primaryShapeVariant","type":"uint8"},{"internalType":"uint8","name":"secondaryShape","type":"uint8"},{"internalType":"uint8","name":"secondaryShapeVariant","type":"uint8"}],"internalType":"struct LogosTypes.ShapeSelections","name":"shapeSelections","type":"tuple"},{"internalType":"uint16","name":"colorPalette","type":"uint16"}],"internalType":"struct LogosTypes.Logo","name":"logo","type":"tuple"}],"name":"updateAndSkipChecks","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801562000010575f80fd5b5060405162002a2138038062002a218339810160408190526200003391620000db565b6200003e3362000070565b600180546001600160a01b039384166001600160a01b0319918216179091556002805492909316911617905562000111565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b0381168114620000d6575f80fd5b919050565b5f8060408385031215620000ed575f80fd5b620000f883620000bf565b91506200010860208401620000bf565b90509250929050565b612902806200011f5f395ff3fe608060405234801561000f575f80fd5b50600436106100ce575f3560e01c806316c38b3c146100d2578063206a4bb5146100e7578063320a98fd1461011757806341a812461461012a57806350ed70cc1461013d5780635c975abb14610184578063715018a6146101a757806375beb8cb146101af5780637f568919146101d25780638da5cb5b146101f25780638fc97d84146101fa578063b4a62d0414610227578063be43aa411461023a578063c093afdb1461024d578063cf30901214610260578063f2fde38b14610273575b5f80fd5b6100e56100e036600461169e565b610286565b005b6001546100fa906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e56101253660046117b8565b6102ab565b6100e56101383660046118dd565b61036e565b61016a61014b366004611a42565b60046020525f908152604090205460ff811690610100900461ffff1682565b60408051921515835261ffff90911660208301520161010e565b5f5461019790600160a81b900460ff1681565b604051901515815260200161010e565b6100e561037e565b6101c26101bd366004611a42565b610391565b60405161010e9493929190611aff565b6101e56101e0366004611a42565b61049e565b60405161010e9190611b88565b6100fa610752565b61016a610208366004611a42565b60056020525f908152604090205460ff811690610100900461ffff1682565b6100e56102353660046118dd565b610760565b6100e56102483660046118dd565b610f77565b6002546100fa906001600160a01b031681565b5f5461019790600160a01b900460ff1681565b6100e5610281366004611bae565b610f82565b61028e610ffb565b5f8054911515600160a81b0260ff60a81b19909216919091179055565b6102b3610ffb565b60405177151a1a5cc81858dd1a5bdb881a5cc81c195c9b585b995b9d60421b602082015260380160405160208183030381529060405280519060200120816040516020016103019190611beb565b60405160208183030381529060405280519060200120146103595760405162461bcd60e51b815260206004820152600d60248201526c496e636f72726563742061636b60981b60448201526064015b60405180910390fd5b505f805460ff60a01b1916600160a01b179055565b61037a8282600161105a565b5050565b610386610ffb565b61038f5f61158d565b565b600360209081525f9182526040918290208054835160808101855260018301805460ff81811684526101008204811684880152620100009091048116838801526002850180548851818902810189019099528089529190941696949592949193606086019390919083018282801561044357602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116104145790505b50505091909252505060408051608081018252600385015460ff808216835261010082048116602084015262010000820481169383019390935263010000009004909116606082015260049093015491929161ffff16905084565b61050360408051608080820183525f8083528351918201845280825260208281018290529382015260608082015290918201908152604080516080810182525f8082526020828101829052928201819052606082015291019081525f60209091015290565b5f828152600360209081526040808320815160808082018452825460ff908116151583528451918201855260018401805480831684526101008104831684890152620100009004909116828601526002840180548651818902810189019097528087529396949587860195939492936060860193919291908301828280156105c557602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116105965790505b50505091909252505050815260408051608081018252600384015460ff808216835261010082048116602084810191909152620100008304821684860152630100000090920416606083015283015260049092015461ffff16910152905061062d8382610760565b5f83815260036020908152604091829020825160808082018552825460ff9081161515835285519182018652600184018054808316845261010081048316848801526201000090049091168287015260028401805487518188028101880190985280885293969495878101959394929360608601939092918301828280156106ef57602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116106c05790505b50505091909252505050815260408051608081018252600384015460ff808216835261010082048116602084810191909152620100008304821684860152630100000090920416606083015283015260049092015461ffff169101529392505050565b5f546001600160a01b031690565b6002546020820151516040516356cddc2560e11b815260ff90911660048201525f916001600160a01b03169063ad9bb84a906024015f60405180830381865afa1580156107af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107d69190810190611e09565b600254604084810151519051634fd21bff60e11b815260ff90911660048201529192505f916001600160a01b0390911690639fa437fe906024015f60405180830381865afa15801561082a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108519190810190611f30565b600254604085810151810151905163368c141960e21b815260ff90911660048201529192505f916001600160a01b039091169063da305064906024015f60405180830381865afa1580156108a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108ce9190810190611f30565b600254606086015160405163074b487360e51b815261ffff90911660048201529192505f916001600160a01b039091169063e9690e60906024015f60405180830381865afa158015610922573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109499190810190611fe7565b90508360c001516109945760405162461bcd60e51b815260206004820152601560248201527410da185c9858dd195c881b9bdd08195b98589b1959605a1b6044820152606401610350565b82606001516109e15760405162461bcd60e51b8152602060048201526019602482015278141c9a5b585c9e481cda185c19481b9bdd08195b98589b1959603a1b6044820152606401610350565b84604001516020015160ff16836040015160ff161015610a4e5760405162461bcd60e51b815260206004820152602260248201527f5072696d6172792073686170652076617269616e74206f7574206f662072616e604482015261676560f01b6064820152608401610350565b8160600151610a9d5760405162461bcd60e51b815260206004820152601b60248201527a14d958dbdb99185c9e481cda185c19481b9bdd08195b98589b1959602a1b6044820152606401610350565b84604001516060015160ff16826040015160ff161015610b0b5760405162461bcd60e51b8152602060048201526024808201527f5365636f6e646172792073686170652076617269616e74206f7574206f662072604482015263616e676560e01b6064820152608401610350565b8060800151610b585760405162461bcd60e51b815260206004820152601960248201527810dbdb1bdc881c185b195d1d19481b9bdd08195b98589b1959603a1b6044820152606401610350565b8360800151518560200151606001515114610bb55760405162461bcd60e51b815260206004820152601f60248201527f57726f6e67206e756d626572206f6620736c6f742073656c656374696f6e73006044820152606401610350565b6106a48610610cef57836020015185602001516020015160ff1681518110610bdf57610bdf6120b6565b60200260200101516020015115610c2e5760405162461bcd60e51b8152602060048201526013602482015272109bdb9d5cc8189bd91e481cd95b1958dd1959606a1b6044820152606401610350565b836040015185602001516040015160ff1681518110610c4f57610c4f6120b6565b60200260200101516020015115610c9e5760405162461bcd60e51b8152602060048201526013602482015272109bdb9d5cc81a195859081cd95b1958dd1959606a1b6044820152606401610350565b806020015115610cef5760405162461bcd60e51b815260206004820152601c60248201527b109bdb9d5cc818dbdb1bdc881c185b195d1d19481cd95b1958dd195960221b6044820152606401610350565b602085015160600151515f5b818160ff161015610f6d575f610d126001846120de565b8260ff161015610d7e5786608001518260ff1681518110610d3557610d356120b6565b60200260200101518760800151836001610d4f91906120f7565b60ff1681518110610d6257610d626120b6565b6020026020010151610d749190612110565b60ff169050610db5565b86608001518260ff1681518110610d9757610d976120b6565b602002602001015160ff168760a0015151610db291906120de565b90505b808860200151606001518360ff1681518110610dd357610dd36120b6565b602002602001015160ff1610610e295760405162461bcd60e51b815260206004820152601b60248201527a536c6f742073656c656374696f6e206f7574206f662072616e676560281b6044820152606401610350565b5f8860200151606001518360ff1681518110610e4757610e476120b6565b602002602001015188608001518460ff1681518110610e6857610e686120b6565b6020026020010151610e7a91906120f7565b90505f8860a001518260ff1681518110610e9657610e966120b6565b60200260200101515f01515111610ee65760405162461bcd60e51b8152602060048201526014602482015273115b5c1d1e481d1c985a5d081cd95b1958dd195960621b6044820152606401610350565b6106a48a10610f58578760a001518160ff1681518110610f0857610f086120b6565b60200260200101516020015115610f585760405162461bcd60e51b8152602060048201526014602482015273109bdb9d5cc81d1c985a5d081cd95b1958dd195960621b6044820152606401610350565b50508080610f6590612129565b915050610cfb565b5050505050505050565b61037a82825f61105a565b610f8a610ffb565b6001600160a01b038116610fef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610350565b610ff88161158d565b50565b33611004610752565b6001600160a01b03161461038f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610350565b5f54600160a01b900460ff161561109c5760405162461bcd60e51b8152602060048201526006602482015265131bd8dad95960d21b6044820152606401610350565b5f54600160a81b900460ff16156110de5760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b6044820152606401610350565b6001546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa158015611125573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111499190612147565b6001600160a01b0316146111935760405162461bcd60e51b81526020600482015260116024820152704e6f74206f776e6572206f66204c6f676f60781b6044820152606401610350565b806111a2576111a28383610760565b60208083015180516060909101516040515f936111c193929101612162565b60408051601f19818403018152828252805160209182012086830151805181840151948201516060909201519296505f95611201959194919391016121b5565b60408051601f1981840301815291815281516020928301205f858152600490935291205490915060ff16158061124c57505f82815260046020526040902054610100900461ffff1685145b6112a35760405162461bcd60e51b815260206004820152602260248201527f43686172616374657220636f6d62696e6174696f6e20616c7265616479207573604482015261195960f21b6064820152608401610350565b5f8181526005602052604090205460ff1615806112d557505f81815260056020526040902054610100900461ffff1685145b6113215760405162461bcd60e51b815260206004820152601e60248201527f536861706520636f6d62696e6174696f6e20616c7265616479207573656400006044820152606401610350565b5f8581526003602052604090205460ff1615611402575f858152600360209081526040808320600181015491516113649360ff90931692600290920191016121da565b60408051601f1981840301815282825280516020918201205f8a815260038084529381209093015490945091926113bd9260ff8082169361010083048216936201000084048316936301000000900490921691016121b5565b60408051601f1981840301815291815281516020928301205f94855260048352818520805462ffffff1990811690915590855260059092529092208054909216909155505b5f8281526004602090815260408083208054600162ffffff1991821661010061ffff8d168102918217831790945587875260058652848720805490931617811790915580895289855260038452938290208054895160ff1982169015151782558985015180519683018054828801519683015160ff998a1661ffff19909216919091179689169095029590951762ff000019166201000094881694909402939093178455606083015180519690911615958a959294926114c99260028701929101906115dc565b505050604082810151805160038401805460208401518486015160609586015160ff95861661ffff1994851617610100938716939093029290921763ffff00001916620100009186169190910263ff000000191617630100000094909116939093029290921790559301516004909201805490931661ffff90921691909117909155517f08be433a05003acaa6ed3fb923d0dec372cc9a0d3cc3de587cbbd868d2453c789061157d908890889085906128a2565b60405180910390a1505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f2090601f0160209004810192821561166d579160200282015f5b8382111561163f57835183826101000a81548160ff021916908360ff16021790555092602001926001016020815f01049283019260010302611602565b801561166b5782816101000a81549060ff02191690556001016020815f0104928301926001030261163f565b505b5061167992915061167d565b5090565b5b80821115611679575f815560010161167e565b8015158114610ff8575f80fd5b5f602082840312156116ae575f80fd5b81356116b981611691565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156116f6576116f66116c0565b60405290565b604080519081016001600160401b03811182821017156116f6576116f66116c0565b60405160e081016001600160401b03811182821017156116f6576116f66116c0565b60405160a081016001600160401b03811182821017156116f6576116f66116c0565b604051601f8201601f191681016001600160401b038111828210171561178a5761178a6116c0565b604052919050565b5f6001600160401b038211156117aa576117aa6116c0565b50601f01601f191660200190565b5f602082840312156117c8575f80fd5b81356001600160401b038111156117dd575f80fd5b8201601f810184136117ed575f80fd5b80356118006117fb82611792565b611762565b818152856020838501011115611814575f80fd5b816020840160208301375f91810160200191909152949350505050565b60ff81168114610ff8575f80fd5b5f6001600160401b03821115611857576118576116c0565b5060051b60200190565b5f60808284031215611871575f80fd5b6118796116d4565b9050813561188681611831565b8152602082013561189681611831565b602082015260408201356118a981611831565b604082015260608201356118bc81611831565b606082015292915050565b803561ffff811681146118d8575f80fd5b919050565b5f80604083850312156118ee575f80fd5b823591506020808401356001600160401b038082111561190c575f80fd5b9085019060e0828803121561191f575f80fd5b6119276116d4565b823561193281611691565b81528284013582811115611944575f80fd5b83016080818a031215611955575f80fd5b61195d6116d4565b813561196881611831565b81528186013561197781611831565b81870152604082013561198981611831565b604082015260608201358481111561199f575f80fd5b82019350601f84018a136119b1575f80fd5b833591506119c16117fb8361183f565b82815260059290921b8401860191868101908b8411156119df575f80fd5b948701945b83861015611a065785356119f781611831565b825294870194908701906119e4565b6060830152508286015250611a1e8860408501611861565b6040820152611a2f60c084016118c7565b6060820152809450505050509250929050565b5f60208284031215611a52575f80fd5b5035919050565b5f6080830160ff80845116855260208181860151168187015281604086015116604087015260608501516080606088015283815180865260a08901915083830195505f92505b80831015611ac157855185168252948301946001929092019190830190611a9f565b50979650505050505050565b60ff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301525050565b841515815260e060208201525f611b1960e0830186611a59565b9050611b286040830185611acd565b61ffff831660c083015295945050505050565b8051151582525f602082015160e06020850152611b5b60e0850182611a59565b90506040830151611b6f6040860182611acd565b5061ffff60608401511660c08501528091505092915050565b602081525f6116b96020830184611b3b565b6001600160a01b0381168114610ff8575f80fd5b5f60208284031215611bbe575f80fd5b81356116b981611b9a565b5f5b83811015611be3578181015183820152602001611bcb565b50505f910152565b5f8251611bfc818460208701611bc9565b9190910192915050565b5f82601f830112611c15575f80fd5b8151611c236117fb82611792565b818152846020838601011115611c37575f80fd5b611c48826020830160208701611bc9565b949350505050565b80516118d881611691565b5f82601f830112611c6a575f80fd5b81516020611c7a6117fb8361183f565b82815260059290921b84018101918181019086841115611c98575f80fd5b8286015b84811015611d225780516001600160401b0380821115611cbb575f8081fd5b908801906040828b03601f1901811315611cd4575f8081fd5b611cdc6116fc565b8784015183811115611ced575f8081fd5b611cfb8d8a83880101611c06565b8252509281015192611d0c84611691565b8088019390935250508352918301918301611c9c565b509695505050505050565b5f82601f830112611d3c575f80fd5b81516020611d4c6117fb8361183f565b82815260059290921b84018101918181019086841115611d6a575f80fd5b8286015b84811015611d225780516001600160401b03811115611d8c575f8081fd5b611d9a8986838b0101611c06565b845250918301918301611d6e565b5f82601f830112611db7575f80fd5b81516020611dc76117fb8361183f565b82815260059290921b84018101918181019086841115611de5575f80fd5b8286015b84811015611d22578051611dfc81611831565b8352918301918301611de9565b5f60208284031215611e19575f80fd5b81516001600160401b0380821115611e2f575f80fd5b9083019060e08286031215611e42575f80fd5b611e4a61171e565b825182811115611e58575f80fd5b611e6487828601611c06565b825250602083015182811115611e78575f80fd5b611e8487828601611c5b565b602083015250604083015182811115611e9b575f80fd5b611ea787828601611c5b565b604083015250606083015182811115611ebe575f80fd5b611eca87828601611d2d565b606083015250608083015182811115611ee1575f80fd5b611eed87828601611da8565b60808301525060a083015182811115611f04575f80fd5b611f1087828601611c5b565b60a083015250611f2260c08401611c50565b60c082015295945050505050565b5f60208284031215611f40575f80fd5b81516001600160401b0380821115611f56575f80fd5b9083019060808286031215611f69575f80fd5b611f716116d4565b825182811115611f7f575f80fd5b611f8b87828601611c06565b825250602083015182811115611f9f575f80fd5b611fab87828601611c06565b60208301525060408301519150611fc182611831565b81604082015260608301519250611fd783611691565b6060810192909252509392505050565b5f60208284031215611ff7575f80fd5b81516001600160401b038082111561200d575f80fd5b9083019060a08286031215612020575f80fd5b612028611740565b825182811115612036575f80fd5b61204287828601611c06565b82525061205160208401611c50565b6020820152604083015182811115612067575f80fd5b61207387828601611c06565b60408301525060608301518281111561208a575f80fd5b61209687828601611c06565b6060830152506120a860808401611c50565b608082015295945050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156120f1576120f16120ca565b92915050565b60ff81811683821601908111156120f1576120f16120ca565b60ff82811682821603908111156120f1576120f16120ca565b5f60ff821660ff810361213e5761213e6120ca565b60010192915050565b5f60208284031215612157575f80fd5b81516116b981611b9a565b5f6040820160ff8086168452602060408186015282865180855260608701915082880194505f5b818110156121a7578551851683529483019491830191600101612189565b509098975050505050505050565b60ff948516815292841660208401529083166040830152909116606082015260800190565b5f6040820160ff808616845260206040818601528286546121ff818690815260200190565b5f8981526020812096509092505b81601f8201101561249457855460ff868216168452612235858501878360081c1660ff169052565b61224960408501878360101c1660ff169052565b606061225e818601888460181c1660ff169052565b608061227281870189858a1c1660ff169052565b60a06122878188018a8660281c1660ff169052565b60c061229c8189018b8760301c1660ff169052565b60e06122b1818a018c8860381c1660ff169052565b6122c66101008a018c8860401c1660ff169052565b6122db6101208a018c8860481c1660ff169052565b6122f06101408a018c8860501c1660ff169052565b6123056101608a018c8860581c1660ff169052565b60ff86861c8c16166101808a01526123286101a08a018c8860681c1660ff169052565b61233d6101c08a018c8860701c1660ff169052565b6123526101e08a018c8860781c1660ff169052565b60ff86851c8c16166102008a01526123756102208a018c8860881c1660ff169052565b61238a6102408a018c8860901c1660ff169052565b61239f6102608a018c8860981c1660ff169052565b60ff86841c8c16166102808a01526123c26102a08a018c8860a81c1660ff169052565b6123d76102c08a018c8860b01c1660ff169052565b6123ec6102e08a018c8860b81c1660ff169052565b60ff86831c8c16166103008a015261240f6103208a018c8860c81c1660ff169052565b6124246103408a018c8860d01c1660ff169052565b6124396103608a018c8860d81c1660ff169052565b60ff86821c8c16166103808a015250505050506124616103a08501878360e81c1660ff169052565b6124766103c08501878360f01c1660ff169052565b60f81c6103e08401526001959095019461040090920191830161220d565b945494818110156124af5760ff868616168352918301916001015b818110156124d0576124c883868860081c1660ff169052565b918301916001015b818110156124f1576124e983868860101c1660ff169052565b918301916001015b818110156125125761250a83868860181c1660ff169052565b918301916001015b8181101561252c5760ff86851c8616168352918301916001015b8181101561254d5761254583868860281c1660ff169052565b918301916001015b8181101561256e5761256683868860301c1660ff169052565b918301916001015b8181101561258f5761258783868860381c1660ff169052565b918301916001015b818110156125b0576125a883868860401c1660ff169052565b918301916001015b818110156125d1576125c983868860481c1660ff169052565b918301916001015b818110156125f2576125ea83868860501c1660ff169052565b918301916001015b818110156126135761260b83868860581c1660ff169052565b918301916001015b818110156126345761262c83868860601c1660ff169052565b918301916001015b818110156126555761264d83868860681c1660ff169052565b918301916001015b818110156126765761266e83868860701c1660ff169052565b918301916001015b818110156126975761268f83868860781c1660ff169052565b918301916001015b818110156126b8576126b083868860801c1660ff169052565b918301916001015b818110156126d9576126d183868860881c1660ff169052565b918301916001015b818110156126fa576126f283868860901c1660ff169052565b918301916001015b8181101561271b5761271383868860981c1660ff169052565b918301916001015b8181101561273c5761273483868860a01c1660ff169052565b918301916001015b8181101561275d5761275583868860a81c1660ff169052565b918301916001015b8181101561277e5761277683868860b01c1660ff169052565b918301916001015b8181101561279f5761279783868860b81c1660ff169052565b918301916001015b818110156127c0576127b883868860c01c1660ff169052565b918301916001015b818110156127e1576127d983868860c81c1660ff169052565b918301916001015b81811015612802576127fa83868860d01c1660ff169052565b918301916001015b818110156128235761281b83868860d81c1660ff169052565b918301916001015b818110156128445761283c83868860e01c1660ff169052565b918301916001015b818110156128655761285d83868860e81c1660ff169052565b918301916001015b818110156128865761287e83868860f01c1660ff169052565b918301916001015b818110156121a75760f886901c83525050019695505050505050565b838152606060208201525f6128ba6060830185611b3b565b9050821515604083015294935050505056fea2646970667358221220048d4038e2c6bf91b6899414b344a7aa1bf812a401fd81b50ea0fa4c9671550864736f6c6343000814003300000000000000000000000089dbbb21922fcfe686d234d751c5507b6b0cdea600000000000000000000000013475a9f853feeffd7634e949622297458e8705a
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106100ce575f3560e01c806316c38b3c146100d2578063206a4bb5146100e7578063320a98fd1461011757806341a812461461012a57806350ed70cc1461013d5780635c975abb14610184578063715018a6146101a757806375beb8cb146101af5780637f568919146101d25780638da5cb5b146101f25780638fc97d84146101fa578063b4a62d0414610227578063be43aa411461023a578063c093afdb1461024d578063cf30901214610260578063f2fde38b14610273575b5f80fd5b6100e56100e036600461169e565b610286565b005b6001546100fa906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100e56101253660046117b8565b6102ab565b6100e56101383660046118dd565b61036e565b61016a61014b366004611a42565b60046020525f908152604090205460ff811690610100900461ffff1682565b60408051921515835261ffff90911660208301520161010e565b5f5461019790600160a81b900460ff1681565b604051901515815260200161010e565b6100e561037e565b6101c26101bd366004611a42565b610391565b60405161010e9493929190611aff565b6101e56101e0366004611a42565b61049e565b60405161010e9190611b88565b6100fa610752565b61016a610208366004611a42565b60056020525f908152604090205460ff811690610100900461ffff1682565b6100e56102353660046118dd565b610760565b6100e56102483660046118dd565b610f77565b6002546100fa906001600160a01b031681565b5f5461019790600160a01b900460ff1681565b6100e5610281366004611bae565b610f82565b61028e610ffb565b5f8054911515600160a81b0260ff60a81b19909216919091179055565b6102b3610ffb565b60405177151a1a5cc81858dd1a5bdb881a5cc81c195c9b585b995b9d60421b602082015260380160405160208183030381529060405280519060200120816040516020016103019190611beb565b60405160208183030381529060405280519060200120146103595760405162461bcd60e51b815260206004820152600d60248201526c496e636f72726563742061636b60981b60448201526064015b60405180910390fd5b505f805460ff60a01b1916600160a01b179055565b61037a8282600161105a565b5050565b610386610ffb565b61038f5f61158d565b565b600360209081525f9182526040918290208054835160808101855260018301805460ff81811684526101008204811684880152620100009091048116838801526002850180548851818902810189019099528089529190941696949592949193606086019390919083018282801561044357602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116104145790505b50505091909252505060408051608081018252600385015460ff808216835261010082048116602084015262010000820481169383019390935263010000009004909116606082015260049093015491929161ffff16905084565b61050360408051608080820183525f8083528351918201845280825260208281018290529382015260608082015290918201908152604080516080810182525f8082526020828101829052928201819052606082015291019081525f60209091015290565b5f828152600360209081526040808320815160808082018452825460ff908116151583528451918201855260018401805480831684526101008104831684890152620100009004909116828601526002840180548651818902810189019097528087529396949587860195939492936060860193919291908301828280156105c557602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116105965790505b50505091909252505050815260408051608081018252600384015460ff808216835261010082048116602084810191909152620100008304821684860152630100000090920416606083015283015260049092015461ffff16910152905061062d8382610760565b5f83815260036020908152604091829020825160808082018552825460ff9081161515835285519182018652600184018054808316845261010081048316848801526201000090049091168287015260028401805487518188028101880190985280885293969495878101959394929360608601939092918301828280156106ef57602002820191905f5260205f20905f905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116106c05790505b50505091909252505050815260408051608081018252600384015460ff808216835261010082048116602084810191909152620100008304821684860152630100000090920416606083015283015260049092015461ffff169101529392505050565b5f546001600160a01b031690565b6002546020820151516040516356cddc2560e11b815260ff90911660048201525f916001600160a01b03169063ad9bb84a906024015f60405180830381865afa1580156107af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526107d69190810190611e09565b600254604084810151519051634fd21bff60e11b815260ff90911660048201529192505f916001600160a01b0390911690639fa437fe906024015f60405180830381865afa15801561082a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108519190810190611f30565b600254604085810151810151905163368c141960e21b815260ff90911660048201529192505f916001600160a01b039091169063da305064906024015f60405180830381865afa1580156108a7573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108ce9190810190611f30565b600254606086015160405163074b487360e51b815261ffff90911660048201529192505f916001600160a01b039091169063e9690e60906024015f60405180830381865afa158015610922573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526109499190810190611fe7565b90508360c001516109945760405162461bcd60e51b815260206004820152601560248201527410da185c9858dd195c881b9bdd08195b98589b1959605a1b6044820152606401610350565b82606001516109e15760405162461bcd60e51b8152602060048201526019602482015278141c9a5b585c9e481cda185c19481b9bdd08195b98589b1959603a1b6044820152606401610350565b84604001516020015160ff16836040015160ff161015610a4e5760405162461bcd60e51b815260206004820152602260248201527f5072696d6172792073686170652076617269616e74206f7574206f662072616e604482015261676560f01b6064820152608401610350565b8160600151610a9d5760405162461bcd60e51b815260206004820152601b60248201527a14d958dbdb99185c9e481cda185c19481b9bdd08195b98589b1959602a1b6044820152606401610350565b84604001516060015160ff16826040015160ff161015610b0b5760405162461bcd60e51b8152602060048201526024808201527f5365636f6e646172792073686170652076617269616e74206f7574206f662072604482015263616e676560e01b6064820152608401610350565b8060800151610b585760405162461bcd60e51b815260206004820152601960248201527810dbdb1bdc881c185b195d1d19481b9bdd08195b98589b1959603a1b6044820152606401610350565b8360800151518560200151606001515114610bb55760405162461bcd60e51b815260206004820152601f60248201527f57726f6e67206e756d626572206f6620736c6f742073656c656374696f6e73006044820152606401610350565b6106a48610610cef57836020015185602001516020015160ff1681518110610bdf57610bdf6120b6565b60200260200101516020015115610c2e5760405162461bcd60e51b8152602060048201526013602482015272109bdb9d5cc8189bd91e481cd95b1958dd1959606a1b6044820152606401610350565b836040015185602001516040015160ff1681518110610c4f57610c4f6120b6565b60200260200101516020015115610c9e5760405162461bcd60e51b8152602060048201526013602482015272109bdb9d5cc81a195859081cd95b1958dd1959606a1b6044820152606401610350565b806020015115610cef5760405162461bcd60e51b815260206004820152601c60248201527b109bdb9d5cc818dbdb1bdc881c185b195d1d19481cd95b1958dd195960221b6044820152606401610350565b602085015160600151515f5b818160ff161015610f6d575f610d126001846120de565b8260ff161015610d7e5786608001518260ff1681518110610d3557610d356120b6565b60200260200101518760800151836001610d4f91906120f7565b60ff1681518110610d6257610d626120b6565b6020026020010151610d749190612110565b60ff169050610db5565b86608001518260ff1681518110610d9757610d976120b6565b602002602001015160ff168760a0015151610db291906120de565b90505b808860200151606001518360ff1681518110610dd357610dd36120b6565b602002602001015160ff1610610e295760405162461bcd60e51b815260206004820152601b60248201527a536c6f742073656c656374696f6e206f7574206f662072616e676560281b6044820152606401610350565b5f8860200151606001518360ff1681518110610e4757610e476120b6565b602002602001015188608001518460ff1681518110610e6857610e686120b6565b6020026020010151610e7a91906120f7565b90505f8860a001518260ff1681518110610e9657610e966120b6565b60200260200101515f01515111610ee65760405162461bcd60e51b8152602060048201526014602482015273115b5c1d1e481d1c985a5d081cd95b1958dd195960621b6044820152606401610350565b6106a48a10610f58578760a001518160ff1681518110610f0857610f086120b6565b60200260200101516020015115610f585760405162461bcd60e51b8152602060048201526014602482015273109bdb9d5cc81d1c985a5d081cd95b1958dd195960621b6044820152606401610350565b50508080610f6590612129565b915050610cfb565b5050505050505050565b61037a82825f61105a565b610f8a610ffb565b6001600160a01b038116610fef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610350565b610ff88161158d565b50565b33611004610752565b6001600160a01b03161461038f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610350565b5f54600160a01b900460ff161561109c5760405162461bcd60e51b8152602060048201526006602482015265131bd8dad95960d21b6044820152606401610350565b5f54600160a81b900460ff16156110de5760405162461bcd60e51b815260206004820152600660248201526514185d5cd95960d21b6044820152606401610350565b6001546040516331a9108f60e11b81526004810185905233916001600160a01b031690636352211e90602401602060405180830381865afa158015611125573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111499190612147565b6001600160a01b0316146111935760405162461bcd60e51b81526020600482015260116024820152704e6f74206f776e6572206f66204c6f676f60781b6044820152606401610350565b806111a2576111a28383610760565b60208083015180516060909101516040515f936111c193929101612162565b60408051601f19818403018152828252805160209182012086830151805181840151948201516060909201519296505f95611201959194919391016121b5565b60408051601f1981840301815291815281516020928301205f858152600490935291205490915060ff16158061124c57505f82815260046020526040902054610100900461ffff1685145b6112a35760405162461bcd60e51b815260206004820152602260248201527f43686172616374657220636f6d62696e6174696f6e20616c7265616479207573604482015261195960f21b6064820152608401610350565b5f8181526005602052604090205460ff1615806112d557505f81815260056020526040902054610100900461ffff1685145b6113215760405162461bcd60e51b815260206004820152601e60248201527f536861706520636f6d62696e6174696f6e20616c7265616479207573656400006044820152606401610350565b5f8581526003602052604090205460ff1615611402575f858152600360209081526040808320600181015491516113649360ff90931692600290920191016121da565b60408051601f1981840301815282825280516020918201205f8a815260038084529381209093015490945091926113bd9260ff8082169361010083048216936201000084048316936301000000900490921691016121b5565b60408051601f1981840301815291815281516020928301205f94855260048352818520805462ffffff1990811690915590855260059092529092208054909216909155505b5f8281526004602090815260408083208054600162ffffff1991821661010061ffff8d168102918217831790945587875260058652848720805490931617811790915580895289855260038452938290208054895160ff1982169015151782558985015180519683018054828801519683015160ff998a1661ffff19909216919091179689169095029590951762ff000019166201000094881694909402939093178455606083015180519690911615958a959294926114c99260028701929101906115dc565b505050604082810151805160038401805460208401518486015160609586015160ff95861661ffff1994851617610100938716939093029290921763ffff00001916620100009186169190910263ff000000191617630100000094909116939093029290921790559301516004909201805490931661ffff90921691909117909155517f08be433a05003acaa6ed3fb923d0dec372cc9a0d3cc3de587cbbd868d2453c789061157d908890889085906128a2565b60405180910390a1505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f2090601f0160209004810192821561166d579160200282015f5b8382111561163f57835183826101000a81548160ff021916908360ff16021790555092602001926001016020815f01049283019260010302611602565b801561166b5782816101000a81549060ff02191690556001016020815f0104928301926001030261163f565b505b5061167992915061167d565b5090565b5b80821115611679575f815560010161167e565b8015158114610ff8575f80fd5b5f602082840312156116ae575f80fd5b81356116b981611691565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b03811182821017156116f6576116f66116c0565b60405290565b604080519081016001600160401b03811182821017156116f6576116f66116c0565b60405160e081016001600160401b03811182821017156116f6576116f66116c0565b60405160a081016001600160401b03811182821017156116f6576116f66116c0565b604051601f8201601f191681016001600160401b038111828210171561178a5761178a6116c0565b604052919050565b5f6001600160401b038211156117aa576117aa6116c0565b50601f01601f191660200190565b5f602082840312156117c8575f80fd5b81356001600160401b038111156117dd575f80fd5b8201601f810184136117ed575f80fd5b80356118006117fb82611792565b611762565b818152856020838501011115611814575f80fd5b816020840160208301375f91810160200191909152949350505050565b60ff81168114610ff8575f80fd5b5f6001600160401b03821115611857576118576116c0565b5060051b60200190565b5f60808284031215611871575f80fd5b6118796116d4565b9050813561188681611831565b8152602082013561189681611831565b602082015260408201356118a981611831565b604082015260608201356118bc81611831565b606082015292915050565b803561ffff811681146118d8575f80fd5b919050565b5f80604083850312156118ee575f80fd5b823591506020808401356001600160401b038082111561190c575f80fd5b9085019060e0828803121561191f575f80fd5b6119276116d4565b823561193281611691565b81528284013582811115611944575f80fd5b83016080818a031215611955575f80fd5b61195d6116d4565b813561196881611831565b81528186013561197781611831565b81870152604082013561198981611831565b604082015260608201358481111561199f575f80fd5b82019350601f84018a136119b1575f80fd5b833591506119c16117fb8361183f565b82815260059290921b8401860191868101908b8411156119df575f80fd5b948701945b83861015611a065785356119f781611831565b825294870194908701906119e4565b6060830152508286015250611a1e8860408501611861565b6040820152611a2f60c084016118c7565b6060820152809450505050509250929050565b5f60208284031215611a52575f80fd5b5035919050565b5f6080830160ff80845116855260208181860151168187015281604086015116604087015260608501516080606088015283815180865260a08901915083830195505f92505b80831015611ac157855185168252948301946001929092019190830190611a9f565b50979650505050505050565b60ff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301525050565b841515815260e060208201525f611b1960e0830186611a59565b9050611b286040830185611acd565b61ffff831660c083015295945050505050565b8051151582525f602082015160e06020850152611b5b60e0850182611a59565b90506040830151611b6f6040860182611acd565b5061ffff60608401511660c08501528091505092915050565b602081525f6116b96020830184611b3b565b6001600160a01b0381168114610ff8575f80fd5b5f60208284031215611bbe575f80fd5b81356116b981611b9a565b5f5b83811015611be3578181015183820152602001611bcb565b50505f910152565b5f8251611bfc818460208701611bc9565b9190910192915050565b5f82601f830112611c15575f80fd5b8151611c236117fb82611792565b818152846020838601011115611c37575f80fd5b611c48826020830160208701611bc9565b949350505050565b80516118d881611691565b5f82601f830112611c6a575f80fd5b81516020611c7a6117fb8361183f565b82815260059290921b84018101918181019086841115611c98575f80fd5b8286015b84811015611d225780516001600160401b0380821115611cbb575f8081fd5b908801906040828b03601f1901811315611cd4575f8081fd5b611cdc6116fc565b8784015183811115611ced575f8081fd5b611cfb8d8a83880101611c06565b8252509281015192611d0c84611691565b8088019390935250508352918301918301611c9c565b509695505050505050565b5f82601f830112611d3c575f80fd5b81516020611d4c6117fb8361183f565b82815260059290921b84018101918181019086841115611d6a575f80fd5b8286015b84811015611d225780516001600160401b03811115611d8c575f8081fd5b611d9a8986838b0101611c06565b845250918301918301611d6e565b5f82601f830112611db7575f80fd5b81516020611dc76117fb8361183f565b82815260059290921b84018101918181019086841115611de5575f80fd5b8286015b84811015611d22578051611dfc81611831565b8352918301918301611de9565b5f60208284031215611e19575f80fd5b81516001600160401b0380821115611e2f575f80fd5b9083019060e08286031215611e42575f80fd5b611e4a61171e565b825182811115611e58575f80fd5b611e6487828601611c06565b825250602083015182811115611e78575f80fd5b611e8487828601611c5b565b602083015250604083015182811115611e9b575f80fd5b611ea787828601611c5b565b604083015250606083015182811115611ebe575f80fd5b611eca87828601611d2d565b606083015250608083015182811115611ee1575f80fd5b611eed87828601611da8565b60808301525060a083015182811115611f04575f80fd5b611f1087828601611c5b565b60a083015250611f2260c08401611c50565b60c082015295945050505050565b5f60208284031215611f40575f80fd5b81516001600160401b0380821115611f56575f80fd5b9083019060808286031215611f69575f80fd5b611f716116d4565b825182811115611f7f575f80fd5b611f8b87828601611c06565b825250602083015182811115611f9f575f80fd5b611fab87828601611c06565b60208301525060408301519150611fc182611831565b81604082015260608301519250611fd783611691565b6060810192909252509392505050565b5f60208284031215611ff7575f80fd5b81516001600160401b038082111561200d575f80fd5b9083019060a08286031215612020575f80fd5b612028611740565b825182811115612036575f80fd5b61204287828601611c06565b82525061205160208401611c50565b6020820152604083015182811115612067575f80fd5b61207387828601611c06565b60408301525060608301518281111561208a575f80fd5b61209687828601611c06565b6060830152506120a860808401611c50565b608082015295945050505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b818103818111156120f1576120f16120ca565b92915050565b60ff81811683821601908111156120f1576120f16120ca565b60ff82811682821603908111156120f1576120f16120ca565b5f60ff821660ff810361213e5761213e6120ca565b60010192915050565b5f60208284031215612157575f80fd5b81516116b981611b9a565b5f6040820160ff8086168452602060408186015282865180855260608701915082880194505f5b818110156121a7578551851683529483019491830191600101612189565b509098975050505050505050565b60ff948516815292841660208401529083166040830152909116606082015260800190565b5f6040820160ff808616845260206040818601528286546121ff818690815260200190565b5f8981526020812096509092505b81601f8201101561249457855460ff868216168452612235858501878360081c1660ff169052565b61224960408501878360101c1660ff169052565b606061225e818601888460181c1660ff169052565b608061227281870189858a1c1660ff169052565b60a06122878188018a8660281c1660ff169052565b60c061229c8189018b8760301c1660ff169052565b60e06122b1818a018c8860381c1660ff169052565b6122c66101008a018c8860401c1660ff169052565b6122db6101208a018c8860481c1660ff169052565b6122f06101408a018c8860501c1660ff169052565b6123056101608a018c8860581c1660ff169052565b60ff86861c8c16166101808a01526123286101a08a018c8860681c1660ff169052565b61233d6101c08a018c8860701c1660ff169052565b6123526101e08a018c8860781c1660ff169052565b60ff86851c8c16166102008a01526123756102208a018c8860881c1660ff169052565b61238a6102408a018c8860901c1660ff169052565b61239f6102608a018c8860981c1660ff169052565b60ff86841c8c16166102808a01526123c26102a08a018c8860a81c1660ff169052565b6123d76102c08a018c8860b01c1660ff169052565b6123ec6102e08a018c8860b81c1660ff169052565b60ff86831c8c16166103008a015261240f6103208a018c8860c81c1660ff169052565b6124246103408a018c8860d01c1660ff169052565b6124396103608a018c8860d81c1660ff169052565b60ff86821c8c16166103808a015250505050506124616103a08501878360e81c1660ff169052565b6124766103c08501878360f01c1660ff169052565b60f81c6103e08401526001959095019461040090920191830161220d565b945494818110156124af5760ff868616168352918301916001015b818110156124d0576124c883868860081c1660ff169052565b918301916001015b818110156124f1576124e983868860101c1660ff169052565b918301916001015b818110156125125761250a83868860181c1660ff169052565b918301916001015b8181101561252c5760ff86851c8616168352918301916001015b8181101561254d5761254583868860281c1660ff169052565b918301916001015b8181101561256e5761256683868860301c1660ff169052565b918301916001015b8181101561258f5761258783868860381c1660ff169052565b918301916001015b818110156125b0576125a883868860401c1660ff169052565b918301916001015b818110156125d1576125c983868860481c1660ff169052565b918301916001015b818110156125f2576125ea83868860501c1660ff169052565b918301916001015b818110156126135761260b83868860581c1660ff169052565b918301916001015b818110156126345761262c83868860601c1660ff169052565b918301916001015b818110156126555761264d83868860681c1660ff169052565b918301916001015b818110156126765761266e83868860701c1660ff169052565b918301916001015b818110156126975761268f83868860781c1660ff169052565b918301916001015b818110156126b8576126b083868860801c1660ff169052565b918301916001015b818110156126d9576126d183868860881c1660ff169052565b918301916001015b818110156126fa576126f283868860901c1660ff169052565b918301916001015b8181101561271b5761271383868860981c1660ff169052565b918301916001015b8181101561273c5761273483868860a01c1660ff169052565b918301916001015b8181101561275d5761275583868860a81c1660ff169052565b918301916001015b8181101561277e5761277683868860b01c1660ff169052565b918301916001015b8181101561279f5761279783868860b81c1660ff169052565b918301916001015b818110156127c0576127b883868860c01c1660ff169052565b918301916001015b818110156127e1576127d983868860c81c1660ff169052565b918301916001015b81811015612802576127fa83868860d01c1660ff169052565b918301916001015b818110156128235761281b83868860d81c1660ff169052565b918301916001015b818110156128445761283c83868860e01c1660ff169052565b918301916001015b818110156128655761285d83868860e81c1660ff169052565b918301916001015b818110156128865761287e83868860f01c1660ff169052565b918301916001015b818110156121a75760f886901c83525050019695505050505050565b838152606060208201525f6128ba6060830185611b3b565b9050821515604083015294935050505056fea2646970667358221220048d4038e2c6bf91b6899414b344a7aa1bf812a401fd81b50ea0fa4c9671550864736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000089dbbb21922fcfe686d234d751c5507b6b0cdea600000000000000000000000013475a9f853feeffd7634e949622297458e8705a
-----Decoded View---------------
Arg [0] : logosContractAddress (address): 0x89DBbB21922fCfe686D234D751c5507b6B0CDEA6
Arg [1] : traitsContactAddress (address): 0x13475a9f853FEEffd7634E949622297458e8705A
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000089dbbb21922fcfe686d234d751c5507b6b0cdea6
Arg [1] : 00000000000000000000000013475a9f853feeffd7634e949622297458e8705a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.