Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 4,137 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint Colonist | 17433635 | 414 days ago | IN | 0.16 ETH | 0.0011977 | ||||
Transfer | 15686237 | 659 days ago | IN | 0.00942948 ETH | 0.00019193 | ||||
Mint Colonist | 15210209 | 732 days ago | IN | 0 ETH | 0.00025224 | ||||
Mint Colonist | 14645274 | 824 days ago | IN | 0.24 ETH | 0.00060581 | ||||
Mint Colonist | 14636257 | 825 days ago | IN | 0 ETH | 0.00222492 | ||||
Mint Colonist | 14592453 | 832 days ago | IN | 0 ETH | 0.00200038 | ||||
Mint Colonist | 14592410 | 832 days ago | IN | 0.4 ETH | 0.00152419 | ||||
Mint Colonist | 14591959 | 832 days ago | IN | 0.08 ETH | 0.00206456 | ||||
Mint Colonist | 14576345 | 835 days ago | IN | 0 ETH | 0.00108106 | ||||
Mint Colonist | 14566528 | 836 days ago | IN | 0 ETH | 0.00230501 | ||||
Mint Colonist | 14563970 | 837 days ago | IN | 0 ETH | 0.00169843 | ||||
Mint Colonist | 14556805 | 838 days ago | IN | 0.32 ETH | 0.00102916 | ||||
Mint Colonist | 14548848 | 839 days ago | IN | 0.08 ETH | 0.00090816 | ||||
Mint Colonist | 14548760 | 839 days ago | IN | 0.08 ETH | 0.00117891 | ||||
Mint Colonist | 14548760 | 839 days ago | IN | 0.08 ETH | 0.00106606 | ||||
Mint Colonist | 14548721 | 839 days ago | IN | 0.08 ETH | 0.00124564 | ||||
Mint Colonist | 14548437 | 839 days ago | IN | 0.24 ETH | 0.00133103 | ||||
Mint Colonist | 14548245 | 839 days ago | IN | 0.08 ETH | 0.00197144 | ||||
Mint Colonist | 14548062 | 839 days ago | IN | 0.08 ETH | 0.00159805 | ||||
Mint Colonist | 14548046 | 839 days ago | IN | 0.08 ETH | 0.00191633 | ||||
Mint Colonist | 14548010 | 839 days ago | IN | 0.08 ETH | 0.0016371 | ||||
Mint Colonist | 14548008 | 839 days ago | IN | 0.08 ETH | 0.00180774 | ||||
Mint Colonist | 14547979 | 839 days ago | IN | 0.08 ETH | 0.00265369 | ||||
Mint Colonist | 14547960 | 839 days ago | IN | 0.08 ETH | 0.00238914 | ||||
Mint Colonist | 14547951 | 839 days ago | IN | 0.08 ETH | 0.00337865 |
Loading...
Loading
Contract Name:
ShatteredWL
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; import "./interfaces/IShatteredWL.sol"; import "./interfaces/IPytheas.sol"; import "./interfaces/IOrbitalBlockade.sol"; import "./interfaces/IColonist.sol"; import "./interfaces/ITColonist.sol"; import "./interfaces/IEON.sol"; import "./interfaces/IRAW.sol"; import "./interfaces/IImperialGuild.sol"; contract ShatteredWL is IShatteredWL, Pausable { // address => can call mapping(address => bool) private admins; struct HonorsList { bool isHonorsMember; bool hasClaimed; uint8 honorsId; } address public auth; address payable ImperialGuildTreasury; bool public hasPublicSaleStarted; bool public isWLactive; bool public isHonorsActive; uint256 public constant paidTokens = 10000; uint256 public constant whitelistPrice = 0.08 ether; uint256 public constant publicPrice = 0.08 ether; mapping(address => uint8) private _WLmints; mapping(address => HonorsList) private _honorsAddresses; event newUser(address newUser); bytes32 internal merkleRoot = 0xd60676eb70cb99e173a40e78e3c1d139722ab50092a4afb575ee44c5c3e78e7f; bytes32 internal entropySauce; // reference to the colonist NFT collection IColonist public colonistNFT; constructor() { _pause(); auth = msg.sender; admins[msg.sender] = true; } /** CRITICAL TO SETUP */ modifier requireContractsSet() { require( address(colonistNFT) != address(0), "Contracts not set" ); _; } modifier noCheaters() { uint256 size = 0; address acc = msg.sender; assembly { size := extcodesize(acc) } require( admins[msg.sender] || (msg.sender == tx.origin && size == 0), "you're trying to cheat!" ); _; entropySauce = keccak256(abi.encodePacked(acc, block.coinbase)); } modifier onlyOwner() { require(msg.sender == auth); _; } function setContracts(address _colonistNFT) external onlyOwner { colonistNFT = IColonist(_colonistNFT); } /** EXTERNAL */ function WlMintColonist(uint256 amount, bytes32[] calldata _merkleProof) external payable noCheaters whenNotPaused { bytes32 leaf = keccak256(abi.encodePacked(msg.sender)); uint16 minted = colonistNFT.minted(); require(isWLactive == true, "whitelist mints not yeat active"); require(amount > 0 && amount <= 5, "5 max mints per tx"); require(minted + amount <= paidTokens, "All sale tokens minted"); require(amount * whitelistPrice == msg.value, "Invalid payment amount"); require( MerkleProof.verify(_merkleProof, merkleRoot, leaf), "Not on the list" ); require(_WLmints[msg.sender] + amount <= 5, "limit 5 per whitelist"); _WLmints[msg.sender] += uint8(amount); uint256 seed; address origin = tx.origin; bytes32 blockies = blockhash(block.number - 1); bytes32 sauce = entropySauce; uint256 blockTime = block.timestamp; uint16[] memory tokenIds = new uint16[](amount); for (uint256 i = 0; i < amount; i++) { minted++; seed = random(origin, blockies, sauce, minted, blockTime); tokenIds[i] = minted; colonistNFT._mintColonist(msg.sender, seed); } emit newUser(msg.sender); } /** Mint colonist. */ function mintColonist(uint256 amount) external payable noCheaters whenNotPaused { uint16 minted = colonistNFT.minted(); require(amount > 0 && amount <= 5, "5 max mints per tx"); require(minted + amount <= paidTokens, "All sale tokens minted"); require(hasPublicSaleStarted == true, "Public sale not open"); require(msg.value >= amount * publicPrice, "Invalid Payment amount"); uint256 seed; address origin = tx.origin; bytes32 blockies = blockhash(block.number - 1); bytes32 sauce = entropySauce; uint256 blockTime = block.timestamp; uint16[] memory tokenIds = new uint16[](amount); for (uint256 i = 0; i < amount; i++) { minted++; seed = random(origin, blockies, sauce, minted, blockTime); tokenIds[i] = minted; colonistNFT._mintColonist(msg.sender, seed); } emit newUser(msg.sender); } /**Mint to honors */ function mintToHonors(uint256 amount, address recipient) external onlyOwner { uint16 minted = colonistNFT.minted(); require(minted + amount <= 1000, "Honor tokens have been sent"); uint16[] memory tokenIds = new uint16[](amount); uint256 seed; address origin = tx.origin; bytes32 blockies = blockhash(block.number - 1); bytes32 sauce = entropySauce; uint256 blockTime = block.timestamp; for (uint256 i = 0; i < amount; i++) { minted++; seed = random(origin, blockies, sauce, minted, blockTime); tokenIds[i] = minted; colonistNFT._mintToHonors(address(recipient), seed); } emit newUser(recipient); } function revealHonors() external noCheaters { require(isHonorsActive == true, "Honor mints have not been activated"); require( _honorsAddresses[msg.sender].isHonorsMember, "Not an honors student" ); require( _honorsAddresses[msg.sender].hasClaimed == false, "Already claimed" ); uint8 id = _honorsAddresses[msg.sender].honorsId; _honorsAddresses[msg.sender].hasClaimed = true; colonistNFT._mintHonors(msg.sender, id); emit newUser(msg.sender); } function addToHonorslist(address honorsAddress, uint8 honorsId) external onlyOwner { _honorsAddresses[honorsAddress] = HonorsList({ isHonorsMember: true, hasClaimed: false, honorsId: honorsId }); } function togglePublicSale(bool startPublicSale) external onlyOwner { hasPublicSaleStarted = startPublicSale; } function toggleHonorsActive(bool _honorsActive) external onlyOwner { isHonorsActive = _honorsActive; } function toggleWLactive(bool _isWLactive) external onlyOwner { isWLactive = _isWLactive; } /** * enables owner to pause / unpause contract */ function setPaused(bool _paused) external requireContractsSet onlyOwner { if (_paused) _pause(); else _unpause(); } /** * enables an address to mint / burn * @param addr the address to enable */ function addAdmin(address addr) external onlyOwner { admins[addr] = true; } /** * disables an address from minting / burning * @param addr the address to disbale */ function removeAdmin(address addr) external onlyOwner { admins[addr] = false; } function random( address origin, bytes32 blockies, bytes32 sauce, uint16 seed, uint256 blockTime ) internal pure returns (uint256) { return uint256( keccak256( abi.encodePacked(origin, blockies, blockTime, sauce, seed) ) ); } function setImperialGuildTreasury(address payable _ImperialGuildTreasury) external onlyOwner { ImperialGuildTreasury = _ImperialGuildTreasury; } /** * allows owner to withdraw funds from minting */ function withdraw() external onlyOwner { payable(ImperialGuildTreasury).transfer(address(this).balance); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT 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: MIT pragma solidity ^0.8.0; /** * @dev These functions deal with verification of Merkle Trees proofs. * * The proofs can be generated using the JavaScript library * https://github.com/miguelmota/merkletreejs[merkletreejs]. * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled. * * See `test/utils/cryptography/MerkleProof.test.js` for some examples. */ library MerkleProof { /** * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree * defined by `root`. For this, a `proof` must be provided, containing * sibling hashes on the branch from the leaf to the root of the tree. Each * pair of leaves and each pair of pre-images are assumed to be sorted. */ function verify( bytes32[] memory proof, bytes32 root, bytes32 leaf ) internal pure returns (bool) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; if (computedHash <= proofElement) { // Hash(current computed hash + current element of the proof) computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); } else { // Hash(current element of the proof + current computed hash) computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); } } // Check if the computed hash (root) is equal to the provided root return computedHash == root; } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IColonist { // struct to store each Colonist's traits struct Colonist { bool isColonist; uint8 background; uint8 body; uint8 shirt; uint8 jacket; uint8 jaw; uint8 eyes; uint8 hair; uint8 held; uint8 gen; } struct HColonist { uint8 Legendary; } function transferFrom( address from, address to, uint256 tokenId ) external; function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) external; function safeTransferFrom( address from, address to, uint256 tokenId ) external; function isOwner(uint256 tokenId) external view returns (address); function minted() external returns (uint16); function totalCir() external returns (uint256); function _mintColonist(address recipient, uint256 seed) external; function _mintToHonors(address recipient, uint256 seed) external; function _mintHonors(address recipient, uint8 id) external; function burn(uint256 tokenId) external; function getMaxTokens() external view returns (uint256); function getPaidTokens() external view returns (uint256); function getTokenTraitsColonist(uint256 tokenId) external view returns (Colonist memory); function getTokenTraitsHonors(uint256 tokenId) external view returns (HColonist memory); function tokenNameByIndex(uint256 index) external view returns (string memory); function hasBeenNamed(uint256 tokenId) external view returns (bool); function nameColonist(uint256 tokenId, string memory newName) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IEON { function mint(address to, uint256 amount) external; function burn(address from, uint256 amount) external; function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IImperialGuild { function getBalance( address account, uint256 id ) external returns(uint256); function mint( uint256 typeId, uint256 paymentId, uint16 qty, address recipient ) external; function burn( uint256 typeId, uint16 qty, address burnFrom ) external; function handlePayment(uint256 amount) external; function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) external; function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IOrbitalBlockade { function addPiratesToCrew(address account, uint16[] calldata tokenIds) external; function claimPiratesFromCrew(address account, uint16[] calldata tokenIds, bool unstake) external; function payPirateTax(uint256 amount) external; function randomPirateOwner(uint256 seed) external view returns (address); }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IPytheas { function addColonistToPytheas(address account, uint16[] calldata tokenIds) external; function claimColonistFromPytheas(address account, uint16[] calldata tokenIds, bool unstake) external; function getColonistMined(address account, uint16 tokenId) external returns (uint256); function handleJoinPirates(address addr, uint16 tokenId) external; function payUp( uint16 tokenId, uint256 amtMined, address addr ) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IRAW { function getBalance( address account, uint256 id ) external returns(uint256); function mint( uint256 typeId, uint256 qty, address recipient ) external; function burn( uint256 typeId, uint256 qty, address burnFrom ) external; function updateMintBurns( uint256 typeId, uint256 mintQty, uint256 burnQty ) external; function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) external; function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IShatteredWL {}
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface ITColonist { function tokenURI(uint256 tokenId) external view returns (string memory); }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "details": { "constantOptimizer": true, "cse": true, "deduplicate": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "peephole": true, "yul": true, "yulDetails": { "optimizerSteps": "dhfoDgvulfnTUtnIf", "stackAllocation": true } }, "runs": 2000 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newUser","type":"address"}],"name":"newUser","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"_merkleProof","type":"bytes32[]"}],"name":"WlMintColonist","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"honorsAddress","type":"address"},{"internalType":"uint8","name":"honorsId","type":"uint8"}],"name":"addToHonorslist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"colonistNFT","outputs":[{"internalType":"contract IColonist","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasPublicSaleStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isHonorsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWLactive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintColonist","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"mintToHonors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paidTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revealHonors","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_colonistNFT","type":"address"}],"name":"setContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_ImperialGuildTreasury","type":"address"}],"name":"setImperialGuildTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_honorsActive","type":"bool"}],"name":"toggleHonorsActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"startPublicSale","type":"bool"}],"name":"togglePublicSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isWLactive","type":"bool"}],"name":"toggleWLactive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"whitelistPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040527fd60676eb70cb99e173a40e78e3c1d139722ab50092a4afb575ee44c5c3e78e7f6006553480156200003557600080fd5b506000805460ff191690556200004a62000081565b600280546001600160a01b031916339081179091556000908152600160208190526040909120805460ff1916909117905562000167565b60005460ff1615620000b05760405162461bcd60e51b8152600401620000a790620000ff565b60405180910390fd5b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620000e63390565b604051620000f5919062000157565b60405180910390a1565b602080825281016200012e81601081526f14185d5cd8589b194e881c185d5cd95960821b602082015260400190565b92915050565b60006001600160a01b0382166200012e565b620001518162000134565b82525050565b602081016200012e828462000146565b611eda80620001776000396000f3fe6080604052600436106101805760003560e01c806370480275116100d6578063c192ba541161007f578063de9375f211610059578063de9375f214610414578063fc1a1c3614610380578063fdd4b0f01461044157600080fd5b8063c192ba54146103be578063cd138d1a146103de578063d63f6f3f146103f457600080fd5b806393cb577a116100b057806393cb577a1461034d578063a945bf8014610380578063b7f71551146103a957600080fd5b806370480275146102fa5780638c3cefa31461031a57806392d9614e1461033a57600080fd5b80633b892765116101385780635a2e2f47116101125780635a2e2f47146102855780635c975abb146102a55780635cd86c1d146102c657600080fd5b80633b8927651461023d5780633ccfd60b1461025d5780634c2a9e6a1461027257600080fd5b80631785f53c116101695780631785f53c146101c757806322ba0432146101e75780632afb52991461021d57600080fd5b80631509f2941461018557806316c38b3c146101a7575b600080fd5b34801561019157600080fd5b506101a56101a03660046115e4565b610473565b005b3480156101b357600080fd5b506101a56101c2366004611620565b6104c4565b3480156101d357600080fd5b506101a56101e23660046115e4565b610525565b3480156101f357600080fd5b50600854610207906001600160a01b031681565b6040516102149190611677565b60405180910390f35b34801561022957600080fd5b506101a5610238366004611699565b61055d565b34801561024957600080fd5b506101a5610258366004611620565b610620565b34801561026957600080fd5b506101a5610683565b6101a56102803660046116e7565b6106d3565b34801561029157600080fd5b506101a56102a03660046115e4565b610a26565b3480156102b157600080fd5b5060005460ff165b6040516102149190611710565b3480156102d257600080fd5b506003546102b990760100000000000000000000000000000000000000000000900460ff1681565b34801561030657600080fd5b506101a56103153660046115e4565b610a77565b34801561032657600080fd5b506101a5610335366004611620565b610ab5565b6101a5610348366004611770565b610b16565b34801561035957600080fd5b506003546102b9907501000000000000000000000000000000000000000000900460ff1681565b34801561038c57600080fd5b5061039c67011c37937e08000081565b60405161021491906117d2565b3480156103b557600080fd5b506101a5610f72565b3480156103ca57600080fd5b506101a56103d9366004611620565b61116d565b3480156103ea57600080fd5b5061039c61271081565b34801561040057600080fd5b506101a561040f3660046117e0565b6111cf565b34801561042057600080fd5b50600254610434906001600160a01b031681565b604051610214919061181c565b34801561044d57600080fd5b506003546102b99074010000000000000000000000000000000000000000900460ff1681565b6002546001600160a01b0316331461048a57600080fd5b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6008546001600160a01b03166104f55760405162461bcd60e51b81526004016104ec9061185e565b60405180910390fd5b6002546001600160a01b0316331461050c57600080fd5b801561051d5761051a611404565b50565b61051a611473565b6002546001600160a01b0316331461053c57600080fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b6002546001600160a01b0316331461057457600080fd5b60408051606081018252600181526000602080830182815260ff9586168486019081526001600160a01b03979097168352600590915292902090518154925194517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090931690151561ff0019161761010094151594909402939093177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff16620100009190921602179055565b6002546001600160a01b0316331461063757600080fd5b60038054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6002546001600160a01b0316331461069a57600080fd5b6003546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561051a573d6000803e3d6000fd5b33600081815260016020526040902054813b919060ff16806106fd575033321480156106fd575081155b6107195760405162461bcd60e51b81526004016104ec906118a0565b60005460ff161561073c5760405162461bcd60e51b81526004016104ec906118e2565b60085460408051630278162160e51b815290516000926001600160a01b031691634f02c420916004808301926020929190829003018187875af1158015610787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ab9190611907565b90506000841180156107be575060058411155b6107da5760405162461bcd60e51b81526004016104ec9061195a565b6127106107eb8561ffff8416611980565b11156108095760405162461bcd60e51b81526004016104ec906119ca565b60035474010000000000000000000000000000000000000000900460ff1615156001146108485760405162461bcd60e51b81526004016104ec90611a0c565b61085a67011c37937e08000085611a1c565b3410156108795760405162461bcd60e51b81526004016104ec90611a6d565b60003281610888600143611a7d565b600754904091504260008967ffffffffffffffff8111156108ab576108ab611a94565b6040519080825280602002602001820160405280156108d4578160200160208202803683370190505b50905060005b8a8110156109b457876108ec81611aaa565b9850506108fc8686868b876114c6565b96508782828151811061091157610911611acc565b61ffff909216602092830291909101909101526008546040517fb656f09d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b656f09d9061096f9033908b90600401611ae2565b600060405180830381600087803b15801561098957600080fd5b505af115801561099d573d6000803e3d6000fd5b5050505080806109ac90611afd565b9150506108da565b507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e9336040516109e4919061181c565b60405180910390a1505050505050508041604051602001610a06929190611b39565b60408051601f198184030181529190528051602090910120600755505050565b6002546001600160a01b03163314610a3d57600080fd5b600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610a8e57600080fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6002546001600160a01b03163314610acc57600080fd5b6003805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b33600081815260016020526040902054813b919060ff1680610b4057503332148015610b40575081155b610b5c5760405162461bcd60e51b81526004016104ec906118a0565b60005460ff1615610b7f5760405162461bcd60e51b81526004016104ec906118e2565b600033604051602001610b929190611b59565b60408051601f198184030181528282528051602091820120600854630278162160e51b855292519094506000936001600160a01b0390931692634f02c420926004808301939192829003018187875af1158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611907565b6003549091507501000000000000000000000000000000000000000000900460ff161515600114610c5a5760405162461bcd60e51b81526004016104ec90611b9d565b600087118015610c6b575060058711155b610c875760405162461bcd60e51b81526004016104ec9061195a565b612710610c988861ffff8416611980565b1115610cb65760405162461bcd60e51b81526004016104ec906119ca565b34610cc967011c37937e08000089611a1c565b14610ce65760405162461bcd60e51b81526004016104ec90611bdf565b610d27868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506006549150859050611503565b610d435760405162461bcd60e51b81526004016104ec90611c21565b33600090815260046020526040902054600590610d6490899060ff16611980565b1115610d825760405162461bcd60e51b81526004016104ec90611c63565b3360009081526004602052604081208054899290610da490849060ff16611c73565b92506101000a81548160ff021916908360ff1602179055506000803290506000600143610dd19190611a7d565b600754904091504260008c67ffffffffffffffff811115610df457610df4611a94565b604051908082528060200260200182016040528015610e1d578160200160208202803683370190505b50905060005b8d811015610efd5787610e3581611aaa565b985050610e458686868b876114c6565b965087828281518110610e5a57610e5a611acc565b61ffff909216602092830291909101909101526008546040517fb656f09d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b656f09d90610eb89033908b90600401611ae2565b600060405180830381600087803b158015610ed257600080fd5b505af1158015610ee6573d6000803e3d6000fd5b505050508080610ef590611afd565b915050610e23565b507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e933604051610f2d919061181c565b60405180910390a150505050505050508041604051602001610f50929190611b39565b60408051601f1981840301815291905280516020909101206007555050505050565b33600081815260016020526040902054813b919060ff1680610f9c57503332148015610f9c575081155b610fb85760405162461bcd60e51b81526004016104ec906118a0565b600354760100000000000000000000000000000000000000000000900460ff161515600114610ff95760405162461bcd60e51b81526004016104ec90611c94565b3360009081526005602052604090205460ff166110285760405162461bcd60e51b81526004016104ec90611d27565b33600090815260056020526040902054610100900460ff161561105d5760405162461bcd60e51b81526004016104ec90611d69565b3360008181526005602052604090819020805461010061ff001982161790915560085491517fb6a719530000000000000000000000000000000000000000000000000000000081526201000090910460ff16926001600160a01b039092169163b6a71953916110d191908590600401611d82565b600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b505050507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e933604051611132919061181c565b60405180910390a150804160405160200161114e929190611b39565b60408051601f1981840301815291905280516020909101206007555050565b6002546001600160a01b0316331461118457600080fd5b600380549115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6002546001600160a01b031633146111e657600080fd5b60085460408051630278162160e51b815290516000926001600160a01b031691634f02c420916004808301926020929190829003018187875af1158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611907565b90506103e86112688461ffff8416611980565b11156112865760405162461bcd60e51b81526004016104ec90611dcf565b60008367ffffffffffffffff8111156112a1576112a1611a94565b6040519080825280602002602001820160405280156112ca578160200160208202803683370190505b509050600032816112dc600143611a7d565b600754904091504260005b898110156113c157876112f981611aaa565b9850506113098585858b866114c6565b95508787828151811061131e5761131e611acc565b61ffff909216602092830291909101909101526008546040517f693fe4db0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063693fe4db9061137c908c908a90600401611ae2565b600060405180830381600087803b15801561139657600080fd5b505af11580156113aa573d6000803e3d6000fd5b5050505080806113b990611afd565b9150506112e7565b507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e9886040516113f1919061181c565b60405180910390a1505050505050505050565b60005460ff16156114275760405162461bcd60e51b81526004016104ec906118e2565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861145c3390565b604051611469919061181c565b60405180910390a1565b60005460ff166114955760405162461bcd60e51b81526004016104ec90611e11565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361145c565b600085858386866040516020016114e1959493929190611e3a565b60408051601f1981840301815291905280516020909101209695505050505050565b600081815b85518110156115a557600086828151811061152557611525611acc565b60200260200101519050808311611566578281604051602001611549929190611e84565b604051602081830303815290604052805190602001209250611592565b8083604051602001611579929190611e84565b6040516020818303038152906040528051906020012092505b508061159d81611afd565b915050611508565b50831490505b9392505050565b60006001600160a01b0382165b92915050565b6115ce816115b2565b811461051a57600080fd5b80356115bf816115c5565b6000602082840312156115f9576115f9600080fd5b600061160584846115d9565b949350505050565b8015156115ce565b80356115bf8161160d565b60006020828403121561163557611635600080fd5b60006116058484611615565b60006001600160a01b0382166115bf565b60006115bf82611641565b60006115bf82611652565b6116718161165d565b82525050565b602081016115bf8284611668565b60ff81166115ce565b80356115bf81611685565b600080604083850312156116af576116af600080fd5b60006116bb85856115d9565b92505060206116cc8582860161168e565b9150509250929050565b806115ce565b80356115bf816116d6565b6000602082840312156116fc576116fc600080fd5b600061160584846116dc565b801515611671565b602081016115bf8284611708565b60008083601f84011261173357611733600080fd5b50813567ffffffffffffffff81111561174e5761174e600080fd5b60208301915083602082028301111561176957611769600080fd5b9250929050565b60008060006040848603121561178857611788600080fd5b600061179486866116dc565b935050602084013567ffffffffffffffff8111156117b4576117b4600080fd5b6117c08682870161171e565b92509250509250925092565b80611671565b602081016115bf82846117cc565b600080604083850312156117f6576117f6600080fd5b600061180285856116dc565b92505060206116cc858286016115d9565b611671816115b2565b602081016115bf8284611813565b60118152602081017f436f6e747261637473206e6f7420736574000000000000000000000000000000815290505b60200190565b602080825281016115bf8161182a565b60178152602081017f796f7527726520747279696e6720746f2063686561742100000000000000000081529050611858565b602080825281016115bf8161186e565b60108152602081017f5061757361626c653a207061757365640000000000000000000000000000000081529050611858565b602080825281016115bf816118b0565b61ffff81166115ce565b80516115bf816118f2565b60006020828403121561191c5761191c600080fd5b600061160584846118fc565b60128152602081017f35206d6178206d696e747320706572207478000000000000000000000000000081529050611858565b602080825281016115bf81611928565b634e487b7160e01b600052601160045260246000fd5b600082198211156119935761199361196a565b500190565b60168152602081017f416c6c2073616c6520746f6b656e73206d696e7465640000000000000000000081529050611858565b602080825281016115bf81611998565b60148152602081017f5075626c69632073616c65206e6f74206f70656e00000000000000000000000081529050611858565b602080825281016115bf816119da565b6000816000190483118215151615611a3657611a3661196a565b500290565b60168152602081017f496e76616c6964205061796d656e7420616d6f756e740000000000000000000081529050611858565b602080825281016115bf81611a3b565b600082821015611a8f57611a8f61196a565b500390565b634e487b7160e01b600052604160045260246000fd5b61ffff81169050600061ffff821415611ac557611ac561196a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60408101611af08285611813565b6115ab60208301846117cc565b6000600019821415611ac557611ac561196a565b60006115bf8260601b90565b60006115bf82611b11565b611671611b34826115b2565b611b1d565b611b438184611b28565b601401611b508183611b28565b60140192915050565b611b638183611b28565b601401919050565b601f8152602081017f77686974656c697374206d696e7473206e6f742079656174206163746976650081529050611858565b602080825281016115bf81611b6b565b60168152602081017f496e76616c6964207061796d656e7420616d6f756e740000000000000000000081529050611858565b602080825281016115bf81611bad565b600f8152602081017f4e6f74206f6e20746865206c697374000000000000000000000000000000000081529050611858565b602080825281016115bf81611bef565b60158152602081017f6c696d69742035207065722077686974656c697374000000000000000000000081529050611858565b602080825281016115bf81611c31565b60ff8116905060ff8216915060008260ff038211156119935761199361196a565b602080825281016115bf81602381527f486f6e6f72206d696e74732068617665206e6f74206265656e2061637469766160208201527f7465640000000000000000000000000000000000000000000000000000000000604082015260600190565b60158152602081017f4e6f7420616e20686f6e6f72732073747564656e74000000000000000000000081529050611858565b602080825281016115bf81611cf5565b600f8152602081017f416c726561647920636c61696d6564000000000000000000000000000000000081529050611858565b602080825281016115bf81611d37565b60ff8116611671565b60408101611d908285611813565b6115ab6020830184611d79565b601b8152602081017f486f6e6f7220746f6b656e732068617665206265656e2073656e74000000000081529050611858565b602080825281016115bf81611d9d565b60148152602081017f5061757361626c653a206e6f742070617573656400000000000000000000000081529050611858565b602080825281016115bf81611ddf565b60006115bf8260f01b90565b61167161ffff8216611e21565b611e448187611b28565b601401611e5181866117cc565b602001611e5e81856117cc565b602001611e6b81846117cc565b602001611e788183611e2d565b60020195945050505050565b611e8e81846117cc565b602001611e9b81836117cc565b6020019291505056fea2646970667358221220d0805be6197684e7da8e44896c605f20550f08ddecbbc060a076209105f0875b64736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106101805760003560e01c806370480275116100d6578063c192ba541161007f578063de9375f211610059578063de9375f214610414578063fc1a1c3614610380578063fdd4b0f01461044157600080fd5b8063c192ba54146103be578063cd138d1a146103de578063d63f6f3f146103f457600080fd5b806393cb577a116100b057806393cb577a1461034d578063a945bf8014610380578063b7f71551146103a957600080fd5b806370480275146102fa5780638c3cefa31461031a57806392d9614e1461033a57600080fd5b80633b892765116101385780635a2e2f47116101125780635a2e2f47146102855780635c975abb146102a55780635cd86c1d146102c657600080fd5b80633b8927651461023d5780633ccfd60b1461025d5780634c2a9e6a1461027257600080fd5b80631785f53c116101695780631785f53c146101c757806322ba0432146101e75780632afb52991461021d57600080fd5b80631509f2941461018557806316c38b3c146101a7575b600080fd5b34801561019157600080fd5b506101a56101a03660046115e4565b610473565b005b3480156101b357600080fd5b506101a56101c2366004611620565b6104c4565b3480156101d357600080fd5b506101a56101e23660046115e4565b610525565b3480156101f357600080fd5b50600854610207906001600160a01b031681565b6040516102149190611677565b60405180910390f35b34801561022957600080fd5b506101a5610238366004611699565b61055d565b34801561024957600080fd5b506101a5610258366004611620565b610620565b34801561026957600080fd5b506101a5610683565b6101a56102803660046116e7565b6106d3565b34801561029157600080fd5b506101a56102a03660046115e4565b610a26565b3480156102b157600080fd5b5060005460ff165b6040516102149190611710565b3480156102d257600080fd5b506003546102b990760100000000000000000000000000000000000000000000900460ff1681565b34801561030657600080fd5b506101a56103153660046115e4565b610a77565b34801561032657600080fd5b506101a5610335366004611620565b610ab5565b6101a5610348366004611770565b610b16565b34801561035957600080fd5b506003546102b9907501000000000000000000000000000000000000000000900460ff1681565b34801561038c57600080fd5b5061039c67011c37937e08000081565b60405161021491906117d2565b3480156103b557600080fd5b506101a5610f72565b3480156103ca57600080fd5b506101a56103d9366004611620565b61116d565b3480156103ea57600080fd5b5061039c61271081565b34801561040057600080fd5b506101a561040f3660046117e0565b6111cf565b34801561042057600080fd5b50600254610434906001600160a01b031681565b604051610214919061181c565b34801561044d57600080fd5b506003546102b99074010000000000000000000000000000000000000000900460ff1681565b6002546001600160a01b0316331461048a57600080fd5b600380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6008546001600160a01b03166104f55760405162461bcd60e51b81526004016104ec9061185e565b60405180910390fd5b6002546001600160a01b0316331461050c57600080fd5b801561051d5761051a611404565b50565b61051a611473565b6002546001600160a01b0316331461053c57600080fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b6002546001600160a01b0316331461057457600080fd5b60408051606081018252600181526000602080830182815260ff9586168486019081526001600160a01b03979097168352600590915292902090518154925194517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090931690151561ff0019161761010094151594909402939093177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff16620100009190921602179055565b6002546001600160a01b0316331461063757600080fd5b60038054911515760100000000000000000000000000000000000000000000027fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6002546001600160a01b0316331461069a57600080fd5b6003546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561051a573d6000803e3d6000fd5b33600081815260016020526040902054813b919060ff16806106fd575033321480156106fd575081155b6107195760405162461bcd60e51b81526004016104ec906118a0565b60005460ff161561073c5760405162461bcd60e51b81526004016104ec906118e2565b60085460408051630278162160e51b815290516000926001600160a01b031691634f02c420916004808301926020929190829003018187875af1158015610787573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ab9190611907565b90506000841180156107be575060058411155b6107da5760405162461bcd60e51b81526004016104ec9061195a565b6127106107eb8561ffff8416611980565b11156108095760405162461bcd60e51b81526004016104ec906119ca565b60035474010000000000000000000000000000000000000000900460ff1615156001146108485760405162461bcd60e51b81526004016104ec90611a0c565b61085a67011c37937e08000085611a1c565b3410156108795760405162461bcd60e51b81526004016104ec90611a6d565b60003281610888600143611a7d565b600754904091504260008967ffffffffffffffff8111156108ab576108ab611a94565b6040519080825280602002602001820160405280156108d4578160200160208202803683370190505b50905060005b8a8110156109b457876108ec81611aaa565b9850506108fc8686868b876114c6565b96508782828151811061091157610911611acc565b61ffff909216602092830291909101909101526008546040517fb656f09d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b656f09d9061096f9033908b90600401611ae2565b600060405180830381600087803b15801561098957600080fd5b505af115801561099d573d6000803e3d6000fd5b5050505080806109ac90611afd565b9150506108da565b507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e9336040516109e4919061181c565b60405180910390a1505050505050508041604051602001610a06929190611b39565b60408051601f198184030181529190528051602090910120600755505050565b6002546001600160a01b03163314610a3d57600080fd5b600880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610a8e57600080fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6002546001600160a01b03163314610acc57600080fd5b6003805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b33600081815260016020526040902054813b919060ff1680610b4057503332148015610b40575081155b610b5c5760405162461bcd60e51b81526004016104ec906118a0565b60005460ff1615610b7f5760405162461bcd60e51b81526004016104ec906118e2565b600033604051602001610b929190611b59565b60408051601f198184030181528282528051602091820120600854630278162160e51b855292519094506000936001600160a01b0390931692634f02c420926004808301939192829003018187875af1158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611907565b6003549091507501000000000000000000000000000000000000000000900460ff161515600114610c5a5760405162461bcd60e51b81526004016104ec90611b9d565b600087118015610c6b575060058711155b610c875760405162461bcd60e51b81526004016104ec9061195a565b612710610c988861ffff8416611980565b1115610cb65760405162461bcd60e51b81526004016104ec906119ca565b34610cc967011c37937e08000089611a1c565b14610ce65760405162461bcd60e51b81526004016104ec90611bdf565b610d27868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506006549150859050611503565b610d435760405162461bcd60e51b81526004016104ec90611c21565b33600090815260046020526040902054600590610d6490899060ff16611980565b1115610d825760405162461bcd60e51b81526004016104ec90611c63565b3360009081526004602052604081208054899290610da490849060ff16611c73565b92506101000a81548160ff021916908360ff1602179055506000803290506000600143610dd19190611a7d565b600754904091504260008c67ffffffffffffffff811115610df457610df4611a94565b604051908082528060200260200182016040528015610e1d578160200160208202803683370190505b50905060005b8d811015610efd5787610e3581611aaa565b985050610e458686868b876114c6565b965087828281518110610e5a57610e5a611acc565b61ffff909216602092830291909101909101526008546040517fb656f09d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b656f09d90610eb89033908b90600401611ae2565b600060405180830381600087803b158015610ed257600080fd5b505af1158015610ee6573d6000803e3d6000fd5b505050508080610ef590611afd565b915050610e23565b507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e933604051610f2d919061181c565b60405180910390a150505050505050508041604051602001610f50929190611b39565b60408051601f1981840301815291905280516020909101206007555050505050565b33600081815260016020526040902054813b919060ff1680610f9c57503332148015610f9c575081155b610fb85760405162461bcd60e51b81526004016104ec906118a0565b600354760100000000000000000000000000000000000000000000900460ff161515600114610ff95760405162461bcd60e51b81526004016104ec90611c94565b3360009081526005602052604090205460ff166110285760405162461bcd60e51b81526004016104ec90611d27565b33600090815260056020526040902054610100900460ff161561105d5760405162461bcd60e51b81526004016104ec90611d69565b3360008181526005602052604090819020805461010061ff001982161790915560085491517fb6a719530000000000000000000000000000000000000000000000000000000081526201000090910460ff16926001600160a01b039092169163b6a71953916110d191908590600401611d82565b600060405180830381600087803b1580156110eb57600080fd5b505af11580156110ff573d6000803e3d6000fd5b505050507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e933604051611132919061181c565b60405180910390a150804160405160200161114e929190611b39565b60408051601f1981840301815291905280516020909101206007555050565b6002546001600160a01b0316331461118457600080fd5b600380549115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff909216919091179055565b6002546001600160a01b031633146111e657600080fd5b60085460408051630278162160e51b815290516000926001600160a01b031691634f02c420916004808301926020929190829003018187875af1158015611231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112559190611907565b90506103e86112688461ffff8416611980565b11156112865760405162461bcd60e51b81526004016104ec90611dcf565b60008367ffffffffffffffff8111156112a1576112a1611a94565b6040519080825280602002602001820160405280156112ca578160200160208202803683370190505b509050600032816112dc600143611a7d565b600754904091504260005b898110156113c157876112f981611aaa565b9850506113098585858b866114c6565b95508787828151811061131e5761131e611acc565b61ffff909216602092830291909101909101526008546040517f693fe4db0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063693fe4db9061137c908c908a90600401611ae2565b600060405180830381600087803b15801561139657600080fd5b505af11580156113aa573d6000803e3d6000fd5b5050505080806113b990611afd565b9150506112e7565b507f0cb5f653b48cf88bb5778a790a892d142dcf0a6b835d866760a0316a3895c1e9886040516113f1919061181c565b60405180910390a1505050505050505050565b60005460ff16156114275760405162461bcd60e51b81526004016104ec906118e2565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861145c3390565b604051611469919061181c565b60405180910390a1565b60005460ff166114955760405162461bcd60e51b81526004016104ec90611e11565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361145c565b600085858386866040516020016114e1959493929190611e3a565b60408051601f1981840301815291905280516020909101209695505050505050565b600081815b85518110156115a557600086828151811061152557611525611acc565b60200260200101519050808311611566578281604051602001611549929190611e84565b604051602081830303815290604052805190602001209250611592565b8083604051602001611579929190611e84565b6040516020818303038152906040528051906020012092505b508061159d81611afd565b915050611508565b50831490505b9392505050565b60006001600160a01b0382165b92915050565b6115ce816115b2565b811461051a57600080fd5b80356115bf816115c5565b6000602082840312156115f9576115f9600080fd5b600061160584846115d9565b949350505050565b8015156115ce565b80356115bf8161160d565b60006020828403121561163557611635600080fd5b60006116058484611615565b60006001600160a01b0382166115bf565b60006115bf82611641565b60006115bf82611652565b6116718161165d565b82525050565b602081016115bf8284611668565b60ff81166115ce565b80356115bf81611685565b600080604083850312156116af576116af600080fd5b60006116bb85856115d9565b92505060206116cc8582860161168e565b9150509250929050565b806115ce565b80356115bf816116d6565b6000602082840312156116fc576116fc600080fd5b600061160584846116dc565b801515611671565b602081016115bf8284611708565b60008083601f84011261173357611733600080fd5b50813567ffffffffffffffff81111561174e5761174e600080fd5b60208301915083602082028301111561176957611769600080fd5b9250929050565b60008060006040848603121561178857611788600080fd5b600061179486866116dc565b935050602084013567ffffffffffffffff8111156117b4576117b4600080fd5b6117c08682870161171e565b92509250509250925092565b80611671565b602081016115bf82846117cc565b600080604083850312156117f6576117f6600080fd5b600061180285856116dc565b92505060206116cc858286016115d9565b611671816115b2565b602081016115bf8284611813565b60118152602081017f436f6e747261637473206e6f7420736574000000000000000000000000000000815290505b60200190565b602080825281016115bf8161182a565b60178152602081017f796f7527726520747279696e6720746f2063686561742100000000000000000081529050611858565b602080825281016115bf8161186e565b60108152602081017f5061757361626c653a207061757365640000000000000000000000000000000081529050611858565b602080825281016115bf816118b0565b61ffff81166115ce565b80516115bf816118f2565b60006020828403121561191c5761191c600080fd5b600061160584846118fc565b60128152602081017f35206d6178206d696e747320706572207478000000000000000000000000000081529050611858565b602080825281016115bf81611928565b634e487b7160e01b600052601160045260246000fd5b600082198211156119935761199361196a565b500190565b60168152602081017f416c6c2073616c6520746f6b656e73206d696e7465640000000000000000000081529050611858565b602080825281016115bf81611998565b60148152602081017f5075626c69632073616c65206e6f74206f70656e00000000000000000000000081529050611858565b602080825281016115bf816119da565b6000816000190483118215151615611a3657611a3661196a565b500290565b60168152602081017f496e76616c6964205061796d656e7420616d6f756e740000000000000000000081529050611858565b602080825281016115bf81611a3b565b600082821015611a8f57611a8f61196a565b500390565b634e487b7160e01b600052604160045260246000fd5b61ffff81169050600061ffff821415611ac557611ac561196a565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60408101611af08285611813565b6115ab60208301846117cc565b6000600019821415611ac557611ac561196a565b60006115bf8260601b90565b60006115bf82611b11565b611671611b34826115b2565b611b1d565b611b438184611b28565b601401611b508183611b28565b60140192915050565b611b638183611b28565b601401919050565b601f8152602081017f77686974656c697374206d696e7473206e6f742079656174206163746976650081529050611858565b602080825281016115bf81611b6b565b60168152602081017f496e76616c6964207061796d656e7420616d6f756e740000000000000000000081529050611858565b602080825281016115bf81611bad565b600f8152602081017f4e6f74206f6e20746865206c697374000000000000000000000000000000000081529050611858565b602080825281016115bf81611bef565b60158152602081017f6c696d69742035207065722077686974656c697374000000000000000000000081529050611858565b602080825281016115bf81611c31565b60ff8116905060ff8216915060008260ff038211156119935761199361196a565b602080825281016115bf81602381527f486f6e6f72206d696e74732068617665206e6f74206265656e2061637469766160208201527f7465640000000000000000000000000000000000000000000000000000000000604082015260600190565b60158152602081017f4e6f7420616e20686f6e6f72732073747564656e74000000000000000000000081529050611858565b602080825281016115bf81611cf5565b600f8152602081017f416c726561647920636c61696d6564000000000000000000000000000000000081529050611858565b602080825281016115bf81611d37565b60ff8116611671565b60408101611d908285611813565b6115ab6020830184611d79565b601b8152602081017f486f6e6f7220746f6b656e732068617665206265656e2073656e74000000000081529050611858565b602080825281016115bf81611d9d565b60148152602081017f5061757361626c653a206e6f742070617573656400000000000000000000000081529050611858565b602080825281016115bf81611ddf565b60006115bf8260f01b90565b61167161ffff8216611e21565b611e448187611b28565b601401611e5181866117cc565b602001611e5e81856117cc565b602001611e6b81846117cc565b602001611e788183611e2d565b60020195945050505050565b611e8e81846117cc565b602001611e9b81836117cc565b6020019291505056fea2646970667358221220d0805be6197684e7da8e44896c605f20550f08ddecbbc060a076209105f0875b64736f6c634300080b0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.