Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 159 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 15833263 | 834 days ago | IN | 0 ETH | 0.0012246 | ||||
Switch AL Sale | 15813394 | 837 days ago | IN | 0 ETH | 0.00027042 | ||||
Switch Public Sa... | 15812224 | 837 days ago | IN | 0 ETH | 0.00042096 | ||||
Al Sale | 15808331 | 838 days ago | IN | 0.0088 ETH | 0.0003932 | ||||
Al Sale | 15808331 | 838 days ago | IN | 0.0088 ETH | 0.0003932 | ||||
Al Sale | 15808327 | 838 days ago | IN | 0.0088 ETH | 0.0003932 | ||||
Free Mint | 15808327 | 838 days ago | IN | 0 ETH | 0.00036281 | ||||
Al Sale | 15808327 | 838 days ago | IN | 0.0088 ETH | 0.00039342 | ||||
Al Sale | 15808327 | 838 days ago | IN | 0.0088 ETH | 0.0003932 | ||||
Free Mint | 15808327 | 838 days ago | IN | 0 ETH | 0.00036301 | ||||
Al Sale | 15808327 | 838 days ago | IN | 0.0264 ETH | 0.000393 | ||||
Free Mint | 15808327 | 838 days ago | IN | 0 ETH | 0.00036279 | ||||
Free Mint | 15808327 | 838 days ago | IN | 0 ETH | 0.00033536 | ||||
Al Sale | 15808327 | 838 days ago | IN | 0.0088 ETH | 0.00039352 | ||||
Al Sale | 15808327 | 838 days ago | IN | 0.0088 ETH | 0.00039352 | ||||
Al Sale | 15808327 | 838 days ago | IN | 0.0088 ETH | 0.00039344 | ||||
Free Mint | 15808327 | 838 days ago | IN | 0 ETH | 0.00033546 | ||||
Free Mint | 15808304 | 838 days ago | IN | 0 ETH | 0.00033546 | ||||
Free Mint | 15808304 | 838 days ago | IN | 0 ETH | 0.00036301 | ||||
Al Sale | 15808304 | 838 days ago | IN | 0.0088 ETH | 0.0003931 | ||||
Al Sale | 15808304 | 838 days ago | IN | 0.0176 ETH | 0.00039312 | ||||
Al Sale | 15808304 | 838 days ago | IN | 0.0264 ETH | 0.0003931 | ||||
Free Mint | 15808304 | 838 days ago | IN | 0 ETH | 0.00036281 | ||||
Free Mint | 15808304 | 838 days ago | IN | 0 ETH | 0.00036269 | ||||
Al Sale | 15808300 | 838 days ago | IN | 0.0176 ETH | 0.0003931 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
tentacularSale
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.11; import {SecuredBase} from "../src/base/SecuredBase.sol"; import {MerkleProof} from "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; interface ITentacular { function mint(address wallet, uint amount) external; } contract tentacularSale is SecuredBase { ITentacular tentacularContract; uint public publicSalePrice; uint public alSalePrice; uint public maxPerWallet = 3; uint public alAndPublicReserve = 5000; uint public alAndPublicMinted; uint public freeMintReserve = 400; uint public freeMinted; uint public teamReserve = 156; uint public teamMinted; error WrongValueSent(); error WrongProof(); error PublicSaleTurnedOff(); error AlSaleTurnedOff(); error MaxPerWalletExceed(); error FreeMintUsed(); error ReserveExceed(); error SendValueFailed(address); bool public alSaleLive=false; bool public publicSaleLive=false; bytes32 ALMerkleRoot; bytes32 FreeMintMerkleRoot; mapping(address => uint[2]) walletToMinted; // [0] - public and AL minted, [1] - free minted constructor() {} //////////////////////////////////////////////////////////////////////////////// //// USER ACTIONS //////////////////////////////////////////////////////////////////////////////// /** @dev mint count of tokens with the public sale price @notice can be called only when public sale is active @param count count of tokens to be minted */ function publicSale(uint count) external payable noContracts OnlyPublicSaleLive { if (msg.value < publicSalePrice*count) revert WrongValueSent(); if (alAndPublicMinted + count > alAndPublicReserve) revert ReserveExceed(); uint[2] storage mintedNumbers = walletToMinted[msg.sender]; if (mintedNumbers[0] + mintedNumbers[1] + count > maxPerWallet) revert MaxPerWalletExceed(); mintedNumbers[0] += count; alAndPublicMinted += count; tentacularContract.mint(msg.sender, count); } /** @dev mint count of tokens with the AL price @notice can be called onl when AL sale is active @param count count of tokens to be minted @param proof merkle proof */ function alSale(uint count, bytes32[] calldata proof) external payable noContracts OnlyAlSaleLive { if (MerkleProof.verify(proof, ALMerkleRoot, keccak256(abi.encodePacked(msg.sender)))==false) revert WrongProof(); if (msg.value < alSalePrice*count) revert WrongValueSent(); if (alAndPublicMinted + count > alAndPublicReserve) revert ReserveExceed(); uint[2] storage mintedNumbers = walletToMinted[msg.sender]; if (mintedNumbers[0] + mintedNumbers[1] + count > maxPerWallet) revert MaxPerWalletExceed(); mintedNumbers[0]+=count; alAndPublicMinted+=count; tentacularContract.mint(msg.sender, count); } /** @dev mint count of tokens with the AL price @notice can be called only when AL sale is active @param proof merkle proof */ function freeMint(bytes32[] calldata proof) external noContracts OnlyAlSaleLive { if (MerkleProof.verify(proof, FreeMintMerkleRoot, keccak256(abi.encodePacked(msg.sender)))==false) revert WrongProof(); if (freeMinted >= freeMintReserve) revert ReserveExceed(); uint[2] storage mintedNumbers = walletToMinted[msg.sender]; if (mintedNumbers[1] > 0) revert FreeMintUsed(); if (mintedNumbers[0] + mintedNumbers[1] >= maxPerWallet) revert MaxPerWalletExceed(); mintedNumbers[1]=1; freeMinted+=1; tentacularContract.mint(msg.sender, 1); } //////////////////////////////////////////////////////////////////////////////// //// OWNER ONLY //////////////////////////////////////////////////////////////////////////////// /** @dev set reserves max capacity @notice total capacity should be equal to 5556 (total mints possible) @param _alAndPublicReserve allowlist and public sale reserve @param _freeMintReserve free mint capacity @param _teamReserve team reserve capacity */ function setReservesCapacity(uint _alAndPublicReserve, uint _freeMintReserve, uint _teamReserve) external onlyOwner { if (_alAndPublicReserve + _freeMintReserve + _teamReserve != 5556) revert(); alAndPublicReserve=_alAndPublicReserve; freeMintReserve=_freeMintReserve; teamReserve=_teamReserve; } /** @dev reduce free mint and public/al sale reserves to amount already minted, increase the team reserve for the same amount */ function moveUnmitedToTeamReserve() external onlyOwner { teamReserve+=(alAndPublicReserve-alAndPublicMinted)+(freeMintReserve-freeMinted); freeMintReserve=freeMinted; alAndPublicReserve=alAndPublicMinted; } /** @dev mint tokens from team reserve to specified wallet @param wallet wallet to receive tokens @param count count of tokens to be minted */ function mintTeamReserve(address wallet, uint count) external onlyOwner { if (teamMinted + count > teamReserve) revert ReserveExceed(); teamMinted += count; tentacularContract.mint(wallet, count); } /** @dev set AL merkle root @param root merkle root */ function setALMerkleRoot(bytes32 root) external onlyOwner { ALMerkleRoot=root; } /** @dev set free mint merkle root @param root merkle root */ function setFreeMintMerkleRoot(bytes32 root) external onlyOwner { FreeMintMerkleRoot=root; } /** @dev set all sales prices @param _publicSale public sale price @param _alSale AL sale price */ function setPrices(uint _publicSale, uint _alSale) external onlyOwner { publicSalePrice=_publicSale; alSalePrice=_alSale; } /** @dev set max tokens that can be minted per wallet @notice same for all sales types @param _maxPerWallet amount can be minted by every single wallet */ function setMaxPerWallet(uint _maxPerWallet) external onlyOwner { maxPerWallet=_maxPerWallet; } /** @dev set AL sales status @param status true to enable, false to disable */ function switchALSale(bool status) external onlyOwner { alSaleLive=status; } /** @dev set public sale status @param status true to enable, false to disable */ function switchPublicSale(bool status) external onlyOwner { publicSaleLive=status; } /** @dev set Tentacular contract address @param _tentacularAddress address of Tentacular contract */ function setTentacularContract(address _tentacularAddress) external onlyOwner { tentacularContract=ITentacular(_tentacularAddress); } /** @dev withdraw funds */ function withdraw() external onlyOwner { require(address(this).balance > 0, "Nothing to withdraw"); uint share = address(this).balance*40/100; (bool success, ) = payable(0x18EBfFD933175c1335d4c2FBF30CF5897469e79E).call{value: share}(""); if (!success) revert SendValueFailed(0x18EBfFD933175c1335d4c2FBF30CF5897469e79E); (success, ) = payable(owner).call{value: address(this).balance}(""); if (!success) revert SendValueFailed(owner); } //////////////////////////////////////////////////////////////////////////////// //// PUBLIC VIEW FUNCTIONS //////////////////////////////////////////////////////////////////////////////// function isInALMerkleTree(address wallet, bytes32[] memory proof) external view returns(bool) { return MerkleProof.verify(proof, ALMerkleRoot, keccak256(abi.encodePacked(wallet))); } function isInFreeMerkleTree(address wallet, bytes32[] memory proof) external view returns(bool) { return MerkleProof.verify(proof, FreeMintMerkleRoot, keccak256(abi.encodePacked(wallet))); } function getMintedByWallet(address wallet) external view returns(uint[2] memory) { return walletToMinted[wallet]; } //////////////////////////////////////////////////////////////////////////////// //// MODIFIERS //////////////////////////////////////////////////////////////////////////////// /** @dev allow method to be executed only if alSaleLive */ modifier OnlyAlSaleLive { if (alSaleLive==false) revert AlSaleTurnedOff(); _; } /** @dev allow method to be executed only if publicSaleLive */ modifier OnlyPublicSaleLive { if (publicSaleLive==false) revert PublicSaleTurnedOff(); _; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.11; contract SecuredBase { address public owner; error NoContractsAllowed(); error NotContractOwner(); constructor() { owner=msg.sender; } function transferOwnership(address newOwner) external onlyOwner { owner=newOwner; } modifier onlyOwner() { if (msg.sender!=owner) revert NotContractOwner(); _; } modifier noContracts() { uint256 size = 0; address acc = msg.sender; assembly { size := extcodesize(acc)} if ((msg.sender != tx.origin) || (size != 0)) revert NoContractsAllowed(); _; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/MerkleProof.sol) 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) { return processProof(proof, leaf) == root; } /** * @dev Returns the rebuilt hash obtained by traversing a Merklee tree up * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt * hash matches the root of the tree. When processing the proof, the pairs * of leafs & pre-images are assumed to be sorted. * * _Available since v4.4._ */ function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { 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 = _efficientHash(computedHash, proofElement); } else { // Hash(current element of the proof + current computed hash) computedHash = _efficientHash(proofElement, computedHash); } } return computedHash; } function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) { assembly { mstore(0x00, a) mstore(0x20, b) value := keccak256(0x00, 0x40) } } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlSaleTurnedOff","type":"error"},{"inputs":[],"name":"FreeMintUsed","type":"error"},{"inputs":[],"name":"MaxPerWalletExceed","type":"error"},{"inputs":[],"name":"NoContractsAllowed","type":"error"},{"inputs":[],"name":"NotContractOwner","type":"error"},{"inputs":[],"name":"PublicSaleTurnedOff","type":"error"},{"inputs":[],"name":"ReserveExceed","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"SendValueFailed","type":"error"},{"inputs":[],"name":"WrongProof","type":"error"},{"inputs":[],"name":"WrongValueSent","type":"error"},{"inputs":[],"name":"alAndPublicMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"alAndPublicReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"alSale","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"alSaleLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"alSalePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"freeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freeMintReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"freeMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getMintedByWallet","outputs":[{"internalType":"uint256[2]","name":"","type":"uint256[2]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"isInALMerkleTree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"isInFreeMerkleTree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"count","type":"uint256"}],"name":"mintTeamReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"moveUnmitedToTeamReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"publicSale","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"publicSaleLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicSalePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"setALMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"setFreeMintMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxPerWallet","type":"uint256"}],"name":"setMaxPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_publicSale","type":"uint256"},{"internalType":"uint256","name":"_alSale","type":"uint256"}],"name":"setPrices","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_alAndPublicReserve","type":"uint256"},{"internalType":"uint256","name":"_freeMintReserve","type":"uint256"},{"internalType":"uint256","name":"_teamReserve","type":"uint256"}],"name":"setReservesCapacity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tentacularAddress","type":"address"}],"name":"setTentacularContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"switchALSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"switchPublicSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"teamMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526003600455611388600555610190600755609c6009556000600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff02191690831515021790555034801561005c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061287e806100ac6000396000f3fe6080604052600436106101cd5760003560e01c80638032cd54116100f7578063b287c8ed11610095578063dde44b8911610064578063dde44b8914610610578063e268e4d314610639578063e8b5498d14610662578063f2fde38b1461068d576101cd565b8063b287c8ed14610589578063b6477fb6146105a5578063b74d53dc146105bc578063d10a1a2b146105e5576101cd565b80638fb54e08116100d15780638fb54e08146104cb578063900b86ad146104f65780639391aac4146105215780639b6860c81461055e576101cd565b80638032cd541461044e57806388d15d50146104775780638da5cb5b146104a0576101cd565b80633db250a61161016f578063590539761161013e5780635905397614610394578063779a3c82146103bd57806378ce801d146103e65780637de3733414610423576101cd565b80633db250a6146102f95780634287f14a14610322578063453c23101461034d57806358b2d0ce14610378576101cd565b806326d93800116101ab57806326d93800146102635780632f2065e81461028e57806336ce2951146102b75780633ccfd60b146102e2576101cd565b806305fefda7146101d25780630f0e2832146101fb5780631b1cac0414610226575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190611e4c565b6106b6565b005b34801561020757600080fd5b5061021061074d565b60405161021d9190611e9b565b60405180910390f35b34801561023257600080fd5b5061024d60048036038101906102489190611f14565b610753565b60405161025a9190611fec565b60405180910390f35b34801561026f57600080fd5b506102786107dd565b6040516102859190612022565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190612069565b6107f0565b005b3480156102c357600080fd5b506102cc610892565b6040516102d99190611e9b565b60405180910390f35b3480156102ee57600080fd5b506102f7610898565b005b34801561030557600080fd5b50610320600480360381019061031b9190612096565b610b45565b005b34801561032e57600080fd5b50610337610cbf565b6040516103449190611e9b565b60405180910390f35b34801561035957600080fd5b50610362610cc5565b60405161036f9190611e9b565b60405180910390f35b610392600480360381019061038d919061213b565b610ccb565b005b3480156103a057600080fd5b506103bb60048036038101906103b691906121d1565b611073565b005b3480156103c957600080fd5b506103e460048036038101906103df91906121fe565b611102565b005b3480156103f257600080fd5b5061040d600480360381019061040891906123a0565b6111c5565b60405161041a9190612022565b60405180910390f35b34801561042f57600080fd5b50610438611202565b6040516104459190611e9b565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190611f14565b611208565b005b34801561048357600080fd5b5061049e600480360381019061049991906123fc565b6112d1565b005b3480156104ac57600080fd5b506104b561165a565b6040516104c29190612458565b60405180910390f35b3480156104d757600080fd5b506104e061167e565b6040516104ed9190612022565b60405180910390f35b34801561050257600080fd5b5061050b611691565b6040516105189190611e9b565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906123a0565b611697565b6040516105559190612022565b60405180910390f35b34801561056a57600080fd5b506105736116d4565b6040516105809190611e9b565b60405180910390f35b6105a3600480360381019061059e9190612473565b6116da565b005b3480156105b157600080fd5b506105ba6119ce565b005b3480156105c857600080fd5b506105e360048036038101906105de9190612069565b611aa9565b005b3480156105f157600080fd5b506105fa611b4b565b6040516106079190611e9b565b60405180910390f35b34801561061c57600080fd5b50610637600480360381019061063291906121d1565b611b51565b005b34801561064557600080fd5b50610660600480360381019061065b9190612473565b611be0565b005b34801561066e57600080fd5b50610677611c6f565b6040516106849190611e9b565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af9190611f14565b611c75565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461073b576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600281905550806003819055505050565b60075481565b61075b611de0565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002806020026040519081016040528092919082600280156107d1576020028201915b8154815260200190600101908083116107bd575b50505050509050919050565b600b60019054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610875576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b60055481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091d576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60004711610960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610957906124fd565b60405180910390fd5b60006064602847610971919061254c565b61097b91906125d5565b905060007318ebffd933175c1335d4c2fbf30cf5897469e79e73ffffffffffffffffffffffffffffffffffffffff16826040516109b790612637565b60006040518083038185875af1925050503d80600081146109f4576040519150601f19603f3d011682016040523d82523d6000602084013e6109f9565b606091505b5050905080610a53577318ebffd933175c1335d4c2fbf30cf5897469e79e6040517f8011c458000000000000000000000000000000000000000000000000000000008152600401610a4a9190612458565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610a9790612637565b60006040518083038185875af1925050503d8060008114610ad4576040519150601f19603f3d011682016040523d82523d6000602084013e610ad9565b606091505b50508091505080610b415760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f8011c458000000000000000000000000000000000000000000000000000000008152600401610b389190612458565b60405180910390fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bca576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095481600a54610bdb919061264c565b1115610c13576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a6000828254610c25919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610c899291906126a2565b600060405180830381600087803b158015610ca357600080fd5b505af1158015610cb7573d6000803e3d6000fd5b505050505050565b60095481565b60045481565b600080339050803b91503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580610d11575060008214155b15610d48576040517f5a156d6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600b60009054906101000a900460ff1615151415610d96576040517f08630ab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515610e0e858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600c5433604051602001610df39190612713565b60405160208183030381529060405280519060200120611d3d565b15151415610e48576040517f923983b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84600354610e56919061254c565b341015610e8f576040517f2f4613eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055485600654610ea0919061264c565b1115610ed8576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506004548682600160028110610f3357610f3261272e565b5b015483600060028110610f4957610f4861272e565b5b0154610f55919061264c565b610f5f919061264c565b1115610f97576040517ffeca9aca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8581600060028110610fac57610fab61272e565b5b016000828254610fbc919061264c565b925050819055508560066000828254610fd5919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933886040518363ffffffff1660e01b81526004016110399291906126a2565b600060405180830381600087803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b50505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110f8576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c8190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611187576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115b4818385611197919061264c565b6111a1919061264c565b146111ab57600080fd5b826005819055508160078190555080600981905550505050565b60006111fa82600c54856040516020016111df9190612713565b60405160208183030381529060405280519060200120611d3d565b905092915050565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461128d576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080339050803b91503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580611317575060008214155b1561134e576040517f5a156d6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600b60009054906101000a900460ff161515141561139c576040517f08630ab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515611414858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600d54336040516020016113f99190612713565b60405160208183030381529060405280519060200120611d3d565b1515141561144e576040517f923983b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007546008541061148b576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816001600281106114e4576114e361272e565b5b0154111561151e576040517f414bfec400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600454816001600281106115355761153461272e565b5b01548260006002811061154b5761154a61272e565b5b0154611557919061264c565b1061158e576040517ffeca9aca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816001600281106115a4576115a361272e565b5b01819055506001600860008282546115bc919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f193360016040518363ffffffff1660e01b81526004016116219291906127a2565b600060405180830381600087803b15801561163b57600080fd5b505af115801561164f573d6000803e3d6000fd5b505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b60035481565b60006116cc82600d54856040516020016116b19190612713565b60405160208183030381529060405280519060200120611d3d565b905092915050565b60025481565b600080339050803b91503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580611720575060008214155b15611757576040517f5a156d6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600b60019054906101000a900460ff16151514156117a5576040517f3512408b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826002546117b3919061254c565b3410156117ec576040517f2f4613eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554836006546117fd919061264c565b1115611835576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060045484826001600281106118905761188f61272e565b5b0154836000600281106118a6576118a561272e565b5b01546118b2919061264c565b6118bc919061264c565b11156118f4576040517ffeca9aca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83816000600281106119095761190861272e565b5b016000828254611919919061264c565b925050819055508360066000828254611932919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933866040518363ffffffff1660e01b81526004016119969291906126a2565b600060405180830381600087803b1580156119b057600080fd5b505af11580156119c4573d6000803e3d6000fd5b5050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a53576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854600754611a6391906127cb565b600654600554611a7391906127cb565b611a7d919061264c565b60096000828254611a8e919061264c565b92505081905550600854600781905550600654600581905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2e576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bd6576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600d8190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c65576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060048190555050565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cfa576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082611d4a8584611d54565b1490509392505050565b60008082905060005b8451811015611dbe576000858281518110611d7b57611d7a61272e565b5b60200260200101519050808311611d9d57611d968382611dc9565b9250611daa565b611da78184611dc9565b92505b508080611db6906127ff565b915050611d5d565b508091505092915050565b600082600052816020526040600020905092915050565b6040518060400160405280600290602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611e2981611e16565b8114611e3457600080fd5b50565b600081359050611e4681611e20565b92915050565b60008060408385031215611e6357611e62611e0c565b5b6000611e7185828601611e37565b9250506020611e8285828601611e37565b9150509250929050565b611e9581611e16565b82525050565b6000602082019050611eb06000830184611e8c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ee182611eb6565b9050919050565b611ef181611ed6565b8114611efc57600080fd5b50565b600081359050611f0e81611ee8565b92915050565b600060208284031215611f2a57611f29611e0c565b5b6000611f3884828501611eff565b91505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b611f6a81611e16565b82525050565b6000611f7c8383611f61565b60208301905092915050565b6000602082019050919050565b611f9e81611f41565b611fa88184611f4c565b9250611fb382611f57565b8060005b83811015611fe4578151611fcb8782611f70565b9650611fd683611f88565b925050600181019050611fb7565b505050505050565b60006040820190506120016000830184611f95565b92915050565b60008115159050919050565b61201c81612007565b82525050565b60006020820190506120376000830184612013565b92915050565b61204681612007565b811461205157600080fd5b50565b6000813590506120638161203d565b92915050565b60006020828403121561207f5761207e611e0c565b5b600061208d84828501612054565b91505092915050565b600080604083850312156120ad576120ac611e0c565b5b60006120bb85828601611eff565b92505060206120cc85828601611e37565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126120fb576120fa6120d6565b5b8235905067ffffffffffffffff811115612118576121176120db565b5b602083019150836020820283011115612134576121336120e0565b5b9250929050565b60008060006040848603121561215457612153611e0c565b5b600061216286828701611e37565b935050602084013567ffffffffffffffff81111561218357612182611e11565b5b61218f868287016120e5565b92509250509250925092565b6000819050919050565b6121ae8161219b565b81146121b957600080fd5b50565b6000813590506121cb816121a5565b92915050565b6000602082840312156121e7576121e6611e0c565b5b60006121f5848285016121bc565b91505092915050565b60008060006060848603121561221757612216611e0c565b5b600061222586828701611e37565b935050602061223686828701611e37565b925050604061224786828701611e37565b9150509250925092565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61229a82612251565b810181811067ffffffffffffffff821117156122b9576122b8612262565b5b80604052505050565b60006122cc611e02565b90506122d88282612291565b919050565b600067ffffffffffffffff8211156122f8576122f7612262565b5b602082029050602081019050919050565b600061231c612317846122dd565b6122c2565b9050808382526020820190506020840283018581111561233f5761233e6120e0565b5b835b81811015612368578061235488826121bc565b845260208401935050602081019050612341565b5050509392505050565b600082601f830112612387576123866120d6565b5b8135612397848260208601612309565b91505092915050565b600080604083850312156123b7576123b6611e0c565b5b60006123c585828601611eff565b925050602083013567ffffffffffffffff8111156123e6576123e5611e11565b5b6123f285828601612372565b9150509250929050565b6000806020838503121561241357612412611e0c565b5b600083013567ffffffffffffffff81111561243157612430611e11565b5b61243d858286016120e5565b92509250509250929050565b61245281611ed6565b82525050565b600060208201905061246d6000830184612449565b92915050565b60006020828403121561248957612488611e0c565b5b600061249784828501611e37565b91505092915050565b600082825260208201905092915050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b60006124e76013836124a0565b91506124f2826124b1565b602082019050919050565b60006020820190508181036000830152612516816124da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061255782611e16565b915061256283611e16565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561259b5761259a61251d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125e082611e16565b91506125eb83611e16565b9250826125fb576125fa6125a6565b5b828204905092915050565b600081905092915050565b50565b6000612621600083612606565b915061262c82612611565b600082019050919050565b600061264282612614565b9150819050919050565b600061265782611e16565b915061266283611e16565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126975761269661251d565b5b828201905092915050565b60006040820190506126b76000830185612449565b6126c46020830184611e8c565b9392505050565b60008160601b9050919050565b60006126e3826126cb565b9050919050565b60006126f5826126d8565b9050919050565b61270d61270882611ed6565b6126ea565b82525050565b600061271f82846126fc565b60148201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061278c6127876127828461275d565b612767565b611e16565b9050919050565b61279c81612771565b82525050565b60006040820190506127b76000830185612449565b6127c46020830184612793565b9392505050565b60006127d682611e16565b91506127e183611e16565b9250828210156127f4576127f361251d565b5b828203905092915050565b600061280a82611e16565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c61251d565b5b60018201905091905056fea26469706673582212202bf9f695bc6e0b6c033051e3b2206831f77688d52863cbbe4f5b2da32dab600c64736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106101cd5760003560e01c80638032cd54116100f7578063b287c8ed11610095578063dde44b8911610064578063dde44b8914610610578063e268e4d314610639578063e8b5498d14610662578063f2fde38b1461068d576101cd565b8063b287c8ed14610589578063b6477fb6146105a5578063b74d53dc146105bc578063d10a1a2b146105e5576101cd565b80638fb54e08116100d15780638fb54e08146104cb578063900b86ad146104f65780639391aac4146105215780639b6860c81461055e576101cd565b80638032cd541461044e57806388d15d50146104775780638da5cb5b146104a0576101cd565b80633db250a61161016f578063590539761161013e5780635905397614610394578063779a3c82146103bd57806378ce801d146103e65780637de3733414610423576101cd565b80633db250a6146102f95780634287f14a14610322578063453c23101461034d57806358b2d0ce14610378576101cd565b806326d93800116101ab57806326d93800146102635780632f2065e81461028e57806336ce2951146102b75780633ccfd60b146102e2576101cd565b806305fefda7146101d25780630f0e2832146101fb5780631b1cac0414610226575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190611e4c565b6106b6565b005b34801561020757600080fd5b5061021061074d565b60405161021d9190611e9b565b60405180910390f35b34801561023257600080fd5b5061024d60048036038101906102489190611f14565b610753565b60405161025a9190611fec565b60405180910390f35b34801561026f57600080fd5b506102786107dd565b6040516102859190612022565b60405180910390f35b34801561029a57600080fd5b506102b560048036038101906102b09190612069565b6107f0565b005b3480156102c357600080fd5b506102cc610892565b6040516102d99190611e9b565b60405180910390f35b3480156102ee57600080fd5b506102f7610898565b005b34801561030557600080fd5b50610320600480360381019061031b9190612096565b610b45565b005b34801561032e57600080fd5b50610337610cbf565b6040516103449190611e9b565b60405180910390f35b34801561035957600080fd5b50610362610cc5565b60405161036f9190611e9b565b60405180910390f35b610392600480360381019061038d919061213b565b610ccb565b005b3480156103a057600080fd5b506103bb60048036038101906103b691906121d1565b611073565b005b3480156103c957600080fd5b506103e460048036038101906103df91906121fe565b611102565b005b3480156103f257600080fd5b5061040d600480360381019061040891906123a0565b6111c5565b60405161041a9190612022565b60405180910390f35b34801561042f57600080fd5b50610438611202565b6040516104459190611e9b565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190611f14565b611208565b005b34801561048357600080fd5b5061049e600480360381019061049991906123fc565b6112d1565b005b3480156104ac57600080fd5b506104b561165a565b6040516104c29190612458565b60405180910390f35b3480156104d757600080fd5b506104e061167e565b6040516104ed9190612022565b60405180910390f35b34801561050257600080fd5b5061050b611691565b6040516105189190611e9b565b60405180910390f35b34801561052d57600080fd5b50610548600480360381019061054391906123a0565b611697565b6040516105559190612022565b60405180910390f35b34801561056a57600080fd5b506105736116d4565b6040516105809190611e9b565b60405180910390f35b6105a3600480360381019061059e9190612473565b6116da565b005b3480156105b157600080fd5b506105ba6119ce565b005b3480156105c857600080fd5b506105e360048036038101906105de9190612069565b611aa9565b005b3480156105f157600080fd5b506105fa611b4b565b6040516106079190611e9b565b60405180910390f35b34801561061c57600080fd5b50610637600480360381019061063291906121d1565b611b51565b005b34801561064557600080fd5b50610660600480360381019061065b9190612473565b611be0565b005b34801561066e57600080fd5b50610677611c6f565b6040516106849190611e9b565b60405180910390f35b34801561069957600080fd5b506106b460048036038101906106af9190611f14565b611c75565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461073b576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600281905550806003819055505050565b60075481565b61075b611de0565b600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002806020026040519081016040528092919082600280156107d1576020028201915b8154815260200190600101908083116107bd575b50505050509050919050565b600b60019054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610875576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b60016101000a81548160ff02191690831515021790555050565b60055481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091d576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60004711610960576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610957906124fd565b60405180910390fd5b60006064602847610971919061254c565b61097b91906125d5565b905060007318ebffd933175c1335d4c2fbf30cf5897469e79e73ffffffffffffffffffffffffffffffffffffffff16826040516109b790612637565b60006040518083038185875af1925050503d80600081146109f4576040519150601f19603f3d011682016040523d82523d6000602084013e6109f9565b606091505b5050905080610a53577318ebffd933175c1335d4c2fbf30cf5897469e79e6040517f8011c458000000000000000000000000000000000000000000000000000000008152600401610a4a9190612458565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1647604051610a9790612637565b60006040518083038185875af1925050503d8060008114610ad4576040519150601f19603f3d011682016040523d82523d6000602084013e610ad9565b606091505b50508091505080610b415760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f8011c458000000000000000000000000000000000000000000000000000000008152600401610b389190612458565b60405180910390fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bca576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095481600a54610bdb919061264c565b1115610c13576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600a6000828254610c25919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b8152600401610c899291906126a2565b600060405180830381600087803b158015610ca357600080fd5b505af1158015610cb7573d6000803e3d6000fd5b505050505050565b60095481565b60045481565b600080339050803b91503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580610d11575060008214155b15610d48576040517f5a156d6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600b60009054906101000a900460ff1615151415610d96576040517f08630ab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515610e0e858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600c5433604051602001610df39190612713565b60405160208183030381529060405280519060200120611d3d565b15151415610e48576040517f923983b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84600354610e56919061254c565b341015610e8f576040517f2f4613eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055485600654610ea0919061264c565b1115610ed8576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506004548682600160028110610f3357610f3261272e565b5b015483600060028110610f4957610f4861272e565b5b0154610f55919061264c565b610f5f919061264c565b1115610f97576040517ffeca9aca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8581600060028110610fac57610fab61272e565b5b016000828254610fbc919061264c565b925050819055508560066000828254610fd5919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933886040518363ffffffff1660e01b81526004016110399291906126a2565b600060405180830381600087803b15801561105357600080fd5b505af1158015611067573d6000803e3d6000fd5b50505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110f8576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c8190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611187576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115b4818385611197919061264c565b6111a1919061264c565b146111ab57600080fd5b826005819055508160078190555080600981905550505050565b60006111fa82600c54856040516020016111df9190612713565b60405160208183030381529060405280519060200120611d3d565b905092915050565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461128d576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080339050803b91503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580611317575060008214155b1561134e576040517f5a156d6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600b60009054906101000a900460ff161515141561139c576040517f08630ab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515611414858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050600d54336040516020016113f99190612713565b60405160208183030381529060405280519060200120611d3d565b1515141561144e576040517f923983b900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007546008541061148b576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816001600281106114e4576114e361272e565b5b0154111561151e576040517f414bfec400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600454816001600281106115355761153461272e565b5b01548260006002811061154b5761154a61272e565b5b0154611557919061264c565b1061158e576040517ffeca9aca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816001600281106115a4576115a361272e565b5b01819055506001600860008282546115bc919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f193360016040518363ffffffff1660e01b81526004016116219291906127a2565b600060405180830381600087803b15801561163b57600080fd5b505af115801561164f573d6000803e3d6000fd5b505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900460ff1681565b60035481565b60006116cc82600d54856040516020016116b19190612713565b60405160208183030381529060405280519060200120611d3d565b905092915050565b60025481565b600080339050803b91503273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580611720575060008214155b15611757576040517f5a156d6000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600b60019054906101000a900460ff16151514156117a5576040517f3512408b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826002546117b3919061254c565b3410156117ec576040517f2f4613eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554836006546117fd919061264c565b1115611835576040517f585f94ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060045484826001600281106118905761188f61272e565b5b0154836000600281106118a6576118a561272e565b5b01546118b2919061264c565b6118bc919061264c565b11156118f4576040517ffeca9aca00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b83816000600281106119095761190861272e565b5b016000828254611919919061264c565b925050819055508360066000828254611932919061264c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933866040518363ffffffff1660e01b81526004016119969291906126a2565b600060405180830381600087803b1580156119b057600080fd5b505af11580156119c4573d6000803e3d6000fd5b5050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a53576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600854600754611a6391906127cb565b600654600554611a7391906127cb565b611a7d919061264c565b60096000828254611a8e919061264c565b92505081905550600854600781905550600654600581905550565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2e576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b60085481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611bd6576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600d8190555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c65576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060048190555050565b600a5481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cfa576040517fbfcafd3700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082611d4a8584611d54565b1490509392505050565b60008082905060005b8451811015611dbe576000858281518110611d7b57611d7a61272e565b5b60200260200101519050808311611d9d57611d968382611dc9565b9250611daa565b611da78184611dc9565b92505b508080611db6906127ff565b915050611d5d565b508091505092915050565b600082600052816020526040600020905092915050565b6040518060400160405280600290602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611e2981611e16565b8114611e3457600080fd5b50565b600081359050611e4681611e20565b92915050565b60008060408385031215611e6357611e62611e0c565b5b6000611e7185828601611e37565b9250506020611e8285828601611e37565b9150509250929050565b611e9581611e16565b82525050565b6000602082019050611eb06000830184611e8c565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ee182611eb6565b9050919050565b611ef181611ed6565b8114611efc57600080fd5b50565b600081359050611f0e81611ee8565b92915050565b600060208284031215611f2a57611f29611e0c565b5b6000611f3884828501611eff565b91505092915050565b600060029050919050565b600081905092915050565b6000819050919050565b611f6a81611e16565b82525050565b6000611f7c8383611f61565b60208301905092915050565b6000602082019050919050565b611f9e81611f41565b611fa88184611f4c565b9250611fb382611f57565b8060005b83811015611fe4578151611fcb8782611f70565b9650611fd683611f88565b925050600181019050611fb7565b505050505050565b60006040820190506120016000830184611f95565b92915050565b60008115159050919050565b61201c81612007565b82525050565b60006020820190506120376000830184612013565b92915050565b61204681612007565b811461205157600080fd5b50565b6000813590506120638161203d565b92915050565b60006020828403121561207f5761207e611e0c565b5b600061208d84828501612054565b91505092915050565b600080604083850312156120ad576120ac611e0c565b5b60006120bb85828601611eff565b92505060206120cc85828601611e37565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126120fb576120fa6120d6565b5b8235905067ffffffffffffffff811115612118576121176120db565b5b602083019150836020820283011115612134576121336120e0565b5b9250929050565b60008060006040848603121561215457612153611e0c565b5b600061216286828701611e37565b935050602084013567ffffffffffffffff81111561218357612182611e11565b5b61218f868287016120e5565b92509250509250925092565b6000819050919050565b6121ae8161219b565b81146121b957600080fd5b50565b6000813590506121cb816121a5565b92915050565b6000602082840312156121e7576121e6611e0c565b5b60006121f5848285016121bc565b91505092915050565b60008060006060848603121561221757612216611e0c565b5b600061222586828701611e37565b935050602061223686828701611e37565b925050604061224786828701611e37565b9150509250925092565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61229a82612251565b810181811067ffffffffffffffff821117156122b9576122b8612262565b5b80604052505050565b60006122cc611e02565b90506122d88282612291565b919050565b600067ffffffffffffffff8211156122f8576122f7612262565b5b602082029050602081019050919050565b600061231c612317846122dd565b6122c2565b9050808382526020820190506020840283018581111561233f5761233e6120e0565b5b835b81811015612368578061235488826121bc565b845260208401935050602081019050612341565b5050509392505050565b600082601f830112612387576123866120d6565b5b8135612397848260208601612309565b91505092915050565b600080604083850312156123b7576123b6611e0c565b5b60006123c585828601611eff565b925050602083013567ffffffffffffffff8111156123e6576123e5611e11565b5b6123f285828601612372565b9150509250929050565b6000806020838503121561241357612412611e0c565b5b600083013567ffffffffffffffff81111561243157612430611e11565b5b61243d858286016120e5565b92509250509250929050565b61245281611ed6565b82525050565b600060208201905061246d6000830184612449565b92915050565b60006020828403121561248957612488611e0c565b5b600061249784828501611e37565b91505092915050565b600082825260208201905092915050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b60006124e76013836124a0565b91506124f2826124b1565b602082019050919050565b60006020820190508181036000830152612516816124da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061255782611e16565b915061256283611e16565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561259b5761259a61251d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125e082611e16565b91506125eb83611e16565b9250826125fb576125fa6125a6565b5b828204905092915050565b600081905092915050565b50565b6000612621600083612606565b915061262c82612611565b600082019050919050565b600061264282612614565b9150819050919050565b600061265782611e16565b915061266283611e16565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156126975761269661251d565b5b828201905092915050565b60006040820190506126b76000830185612449565b6126c46020830184611e8c565b9392505050565b60008160601b9050919050565b60006126e3826126cb565b9050919050565b60006126f5826126d8565b9050919050565b61270d61270882611ed6565b6126ea565b82525050565b600061271f82846126fc565b60148201915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061278c6127876127828461275d565b612767565b611e16565b9050919050565b61279c81612771565b82525050565b60006040820190506127b76000830185612449565b6127c46020830184612793565b9392505050565b60006127d682611e16565b91506127e183611e16565b9250828210156127f4576127f361251d565b5b828203905092915050565b600061280a82611e16565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561283d5761283c61251d565b5b60018201905091905056fea26469706673582212202bf9f695bc6e0b6c033051e3b2206831f77688d52863cbbe4f5b2da32dab600c64736f6c634300080b0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.