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
TokenTracker
Latest 25 from a total of 1,239 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Approval For... | 21570001 | 41 days ago | IN | 0 ETH | 0.00021027 | ||||
Set Approval For... | 21368943 | 69 days ago | IN | 0 ETH | 0.00100179 | ||||
Set Approval For... | 20542136 | 184 days ago | IN | 0 ETH | 0.00012895 | ||||
Set Approval For... | 20277918 | 221 days ago | IN | 0 ETH | 0.00019807 | ||||
Set Approval For... | 20204402 | 231 days ago | IN | 0 ETH | 0.00012328 | ||||
Set Approval For... | 19790097 | 289 days ago | IN | 0 ETH | 0.00042147 | ||||
Set Approval For... | 19121893 | 383 days ago | IN | 0 ETH | 0.00073992 | ||||
Set Approval For... | 18806006 | 427 days ago | IN | 0 ETH | 0.00125494 | ||||
Set Approval For... | 18799355 | 428 days ago | IN | 0 ETH | 0.0016672 | ||||
Set Approval For... | 18291601 | 499 days ago | IN | 0 ETH | 0.00022947 | ||||
Set Approval For... | 18106358 | 525 days ago | IN | 0 ETH | 0.0002552 | ||||
Set Approval For... | 18059118 | 532 days ago | IN | 0 ETH | 0.00030782 | ||||
Set Approval For... | 17982884 | 542 days ago | IN | 0 ETH | 0.00049051 | ||||
Set Approval For... | 17911627 | 552 days ago | IN | 0 ETH | 0.00045661 | ||||
Set Approval For... | 17376281 | 628 days ago | IN | 0 ETH | 0.00080499 | ||||
Set Approval For... | 17260578 | 644 days ago | IN | 0 ETH | 0.00102394 | ||||
Set Approval For... | 17189634 | 654 days ago | IN | 0 ETH | 0.0043597 | ||||
Set Approval For... | 17189633 | 654 days ago | IN | 0 ETH | 0.00453087 | ||||
Set Approval For... | 17183999 | 655 days ago | IN | 0 ETH | 0.00236479 | ||||
Set Approval For... | 17127779 | 663 days ago | IN | 0 ETH | 0.0017962 | ||||
Set Approval For... | 17112601 | 665 days ago | IN | 0 ETH | 0.00124797 | ||||
Set Approval For... | 17103454 | 666 days ago | IN | 0 ETH | 0.00145573 | ||||
Set Approval For... | 17072671 | 670 days ago | IN | 0 ETH | 0.00114445 | ||||
Set Approval For... | 17028023 | 677 days ago | IN | 0 ETH | 0.00103011 | ||||
Set Approval For... | 17004292 | 680 days ago | IN | 0 ETH | 0.00065598 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
13641584 | 1186 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x50912b15...5BF9294BF The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
DroppableEditionsProxy
Compiler Version
v0.8.6+commit.11564f7e
Optimization Enabled:
Yes with 2000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; import {IERC2309} from "../../../external/interface/IERC2309.sol"; import {DroppableEditionsStorage} from "./DroppableEditionsStorage.sol"; import {IDroppableEditionsFactory} from "./interface/IDroppableEditionsFactory.sol"; import {InitializedGovernable} from "../../../lib/InitializedGovernable.sol"; import {Pausable} from "../../../lib/Pausable.sol"; import {IDroppableEditionsLogicEvents} from "./interface/IDroppableEditionsLogic.sol"; import {IERC721Events} from "../../../external/interface/IERC721.sol"; /** * @title DroppableEditionsProxy * @author MirrorXYZ */ contract DroppableEditionsProxy is DroppableEditionsStorage, InitializedGovernable, Pausable, IDroppableEditionsLogicEvents, IERC721Events, IERC2309 { event Upgraded(address indexed implementation); event RenounceUpgrade(uint256 blockNumber); /// @notice IERC721Metadata string public name; string public symbol; constructor( address owner_, address governor_, address proxyRegistry_ ) InitializedGovernable(owner_, governor_) Pausable(true) { address logic = IDroppableEditionsFactory(msg.sender).logic(); assembly { sstore(_IMPLEMENTATION_SLOT, logic) } emit Upgraded(logic); proxyRegistry = proxyRegistry_; bytes memory nftMetaData; bytes memory adminData; ( // NFT Metadata nftMetaData, // Edition Data allocation, quantity, price, // Admin data adminData ) = IDroppableEditionsFactory(msg.sender).parameters(); (name, symbol, baseURI, contentHash) = abi.decode( nftMetaData, (string, string, string, bytes32) ); ( operator, merkleRoot, tributary, fundingRecipient, feePercentage, treasuryConfig ) = abi.decode( adminData, (address, bytes32, address, address, uint256, address) ); } fallback() external payable { assembly { let ptr := mload(0x40) calldatacopy(ptr, 0, calldatasize()) let result := delegatecall( gas(), sload(_IMPLEMENTATION_SLOT), ptr, calldatasize(), 0, 0 ) let size := returndatasize() returndatacopy(ptr, 0, size) switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } // ============ Upgrade Methods ============ /// @notice Get current logic function getLogic() external view returns (address logic) { assembly { logic := sload(_IMPLEMENTATION_SLOT) } } /// @notice Allows governance to change the logic. function changeLogic(address newLogic) external onlyGovernance { require(upgradesAllowed, "cannot upgrade"); // Store the newImplementation on implementation-slot assembly { sstore(_IMPLEMENTATION_SLOT, newLogic) } emit Upgraded(newLogic); } /// @notice opt-out of upgrades function renounceUpgrades() external onlyGovernance { upgradesAllowed = false; emit RenounceUpgrade(block.number); } receive() external payable {} }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; interface IERC2309 { event ConsecutiveTransfer( uint256 indexed fromTokenId, uint256 toTokenId, address indexed fromAddress, address indexed toAddress ); }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; /** * @title DroppableEditionsStorage * @author MirrorXYZ */ contract DroppableEditionsStorage { // ============ Structs ============ /// @notice Contains general data about the NFT. struct NFTMetadata { string name; string symbol; string baseURI; bytes32 contentHash; } /// @notice Contains information pertaining to the edition spec. struct EditionData { // The maximum number of tokens that can be sold. uint256 quantity; uint256 allocation; // The price at which each token will be sold, in ETH. uint256 price; } /// @notice Contains information about funds disbursement. struct AdminData { // Operator of this contract. address operator; bytes32 merkleRoot; // Address that receive gov tokens via treasury. address tributary; // The account that will receive sales revenue. address payable fundingRecipient; // The fee taken when withdrawing funds uint256 feePercentage; } // ============ Storage for Setup ============ /// @notice NFTMetadata` string public baseURI; bytes32 contentHash; /// @notice EditionData uint256 public allocation; uint256 public quantity; uint256 public price; /// @notice EditionConfig address public operator; address public tributary; address payable public fundingRecipient; uint256 feePercentage; /// @notice Treasury Config, provided at setup, for finding the treasury address. address treasuryConfig; // ============ Mutable Runtime Storage ============ /// @notice `nextTokenId` increments with each token purchased, globally across all editions. uint256 internal nextTokenId; /// @notice The number of tokens that have moved outside of the pre-mint allocation. uint256 internal allocationsTransferred = 0; /** * @notice A special mapping of burned tokens, to take care of burning within * the tokenId range of the allocation. */ mapping(uint256 => bool) internal _burned; // ============ Mutable Internal NFT Storage ============ mapping(uint256 => address) internal _owners; mapping(address => uint256) internal _balances; mapping(uint256 => address) internal _tokenApprovals; mapping(address => mapping(address => bool)) internal _operatorApprovals; /// @notice Only allow one purchase per account. mapping(address => bool) internal purchased; // OpenSea's Proxy Registry address public proxyRegistry; bytes32 public merkleRoot; uint256 currentTokenId; uint256 currentIndexId; uint256 claimedTokens; uint256 nonAllocatedPurchases = 0; mapping(uint256 => bool) public burned; mapping(uint256 => address) public indexToClaimer; mapping(address => uint256) public claimerToAllocation; mapping(bytes32 => bool) public claimed; /** * @dev Storage slot with the address of the current implementation. * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /// @notice Allows to renounce upgrades bool public upgradesAllowed = true; }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; interface IDroppableEditionsFactory { function logic() external returns (address); // DroppableEditions data function parameters() external returns ( // NFT Metadata bytes memory nftMetaData, // Edition Data uint256 allocation, uint256 quantity, uint256 price, // Config bytes memory configData ); }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; import {Ownable} from "../lib/Ownable.sol"; import {IGovernable} from "../lib/interface/IGovernable.sol"; contract InitializedGovernable is Ownable, IGovernable { // ============ Events ============ event GovernorChanged( address indexed previousGovernor, address indexed newGovernor ); // ============ Mutable Storage ============ // Mirror governance contract. address public override governor; // ============ Modifiers ============ modifier onlyGovernance() { require(isOwner() || isGovernor(), "caller is not governance"); _; } modifier onlyGovernor() { require(isGovernor(), "caller is not governor"); _; } // ============ Constructor ============ constructor(address owner_, address governor_) Ownable(owner_) { _setGovernor(governor_); } // ============ Administration ============ function changeGovernor(address governor_) public override onlyGovernance { _setGovernor(governor_); } // ============ Utility Functions ============ function isGovernor() public view override returns (bool) { return msg.sender == governor; } // ============ Internal Functions ============ function _setGovernor(address governor_) internal { emit GovernorChanged(governor, governor_); governor = governor_; } }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; interface IPausableEvents { /// @notice Emitted when the pause is triggered by `account`. event Paused(address account); /// @notice Emitted when the pause is lifted by `account`. event Unpaused(address account); } interface IPausable { function paused() external returns (bool); } contract Pausable is IPausable, IPausableEvents { bool public override paused; // Modifiers modifier whenNotPaused() { require(!paused, "Pausable: paused"); _; } modifier whenPaused() { require(paused, "Pausable: not paused"); _; } /// @notice Initializes the contract in unpaused state. constructor(bool paused_) { paused = paused_; } // ============ Internal Functions ============ function _pause() internal whenNotPaused { paused = true; emit Paused(msg.sender); } function _unpause() internal whenPaused { paused = false; emit Unpaused(msg.sender); } }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; interface IDroppableEditionsLogicEvents { event EditionPurchased( uint256 indexed tokenId, uint256 amountPaid, address buyer, address receiver ); event EditionCreatorChanged( address indexed previousCreator, address indexed newCreator ); }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; interface IERC721 { function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Events { event Transfer( address indexed from, address indexed to, uint256 indexed tokenId ); event Approval( address indexed owner, address indexed approved, uint256 indexed tokenId ); event ApprovalForAll( address indexed owner, address indexed operator, bool approved ); } interface IERC721Metadata { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } interface IERC721Royalties { function getFeeRecipients(uint256 id) external view returns (address payable[] memory); function getFeeBps(uint256 id) external view returns (uint256[] memory); }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; interface IOwnableEvents { event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); } contract Ownable is IOwnableEvents { address public owner; address private nextOwner; // modifiers modifier onlyOwner() { require(isOwner(), "caller is not the owner."); _; } modifier onlyNextOwner() { require(isNextOwner(), "current owner must set caller as next owner."); _; } /** * @dev Initialize contract by setting transaction submitter as initial owner. */ constructor(address owner_) { owner = owner_; emit OwnershipTransferred(address(0), owner); } /** * @dev Initiate ownership transfer by setting nextOwner. */ function transferOwnership(address nextOwner_) external onlyOwner { require(nextOwner_ != address(0), "Next owner is the zero address."); nextOwner = nextOwner_; } /** * @dev Cancel ownership transfer by deleting nextOwner. */ function cancelOwnershipTransfer() external onlyOwner { delete nextOwner; } /** * @dev Accepts ownership transfer by setting owner. */ function acceptOwnership() external onlyNextOwner { delete nextOwner; owner = msg.sender; emit OwnershipTransferred(owner, msg.sender); } /** * @dev Renounce ownership by setting owner to zero address. */ function renounceOwnership() external onlyOwner { _renounceOwnership(); } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return msg.sender == owner; } /** * @dev Returns true if the caller is the next owner. */ function isNextOwner() public view returns (bool) { return msg.sender == nextOwner; } function _setOwner(address previousOwner, address newOwner) internal { owner = newOwner; emit OwnershipTransferred(previousOwner, owner); } function _renounceOwnership() internal { owner = address(0); emit OwnershipTransferred(owner, address(0)); } }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.6; interface IGovernable { function changeGovernor(address governor_) external; function isGovernor() external view returns (bool); function governor() external view returns (address); }
{ "optimizer": { "enabled": true, "runs": 2000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"governor_","type":"address"},{"internalType":"address","name":"proxyRegistry_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"fromAddress","type":"address"},{"indexed":true,"internalType":"address","name":"toAddress","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousCreator","type":"address"},{"indexed":true,"internalType":"address","name":"newCreator","type":"address"}],"name":"EditionCreatorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountPaid","type":"uint256"},{"indexed":false,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"}],"name":"EditionPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousGovernor","type":"address"},{"indexed":true,"internalType":"address","name":"newGovernor","type":"address"}],"name":"GovernorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"RenounceUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"burned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"governor_","type":"address"}],"name":"changeGovernor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLogic","type":"address"}],"name":"changeLogic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimerToAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundingRecipient","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLogic","outputs":[{"internalType":"address","name":"logic","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"indexToClaimer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isGovernor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isNextOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyRegistry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quantity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceUpgrades","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"nextOwner_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tributary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"upgradesAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x6080604052600436106101d15760003560e01c80636c0360eb116100f7578063a035b1fe11610095578063cc3c0f0611610064578063cc3c0f0614610594578063e4c0aaf4146105c4578063ed459df2146105e4578063f2fde38b14610604576101d8565b8063a035b1fe1461050a578063b50cbd9f14610520578063ba8c65ae14610540578063c7af335214610574576101d8565b806388a17bde116100d157806388a17bde146104955780638da5cb5b146104ab5780638f32d59b146104d057806395d89b41146104f5576101d8565b80636c0360eb14610456578063715018a61461046b57806379ba509714610480576101d8565b806323452b9c1161016f5780633a67d0b01161013e5780633a67d0b0146103ae578063570ca735146103ce5780635c975abb146103ee5780636bc177e814610420576101d8565b806323452b9c1461034c5780632704f9b4146103635780632eb4a7ab1461038357806338b84a0814610399576101d8565b806317fc45e2116101ab57806317fc45e2146102ab5780631a5b6279146102cf5780631bb534ba146102fc57806323250cae1461031c576101d8565b806306fdde031461021e578063099ea2d3146102495780630c340a2414610273576101d8565b366101d857005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e81801561021a578184f35b8184fd5b34801561022a57600080fd5b50610233610624565b6040516102409190610d32565b60405180910390f35b34801561025557600080fd5b50601c546102639060ff1681565b6040519015158152602001610240565b34801561027f57600080fd5b50601e54610293906001600160a01b031681565b6040516001600160a01b039091168152602001610240565b3480156102b757600080fd5b506102c160035481565b604051908152602001610240565b3480156102db57600080fd5b506102c16102ea366004610ce9565b601a6020526000908152604090205481565b34801561030857600080fd5b50600754610293906001600160a01b031681565b34801561032857600080fd5b50610263610337366004610d19565b60186020526000908152604090205460ff1681565b34801561035857600080fd5b506103616106b2565b005b34801561036f57600080fd5b50600654610293906001600160a01b031681565b34801561038f57600080fd5b506102c160135481565b3480156103a557600080fd5b50610361610735565b3480156103ba57600080fd5b506103616103c9366004610ce9565b610806565b3480156103da57600080fd5b50600554610293906001600160a01b031681565b3480156103fa57600080fd5b50601e546102639074010000000000000000000000000000000000000000900460ff1681565b34801561042c57600080fd5b5061029361043b366004610d19565b6019602052600090815260409020546001600160a01b031681565b34801561046257600080fd5b50610233610927565b34801561047757600080fd5b50610361610934565b34801561048c57600080fd5b5061036161099d565b3480156104a157600080fd5b506102c160025481565b3480156104b757600080fd5b50601c546102939061010090046001600160a01b031681565b3480156104dc57600080fd5b50601c5461010090046001600160a01b03163314610263565b34801561050157600080fd5b50610233610aa9565b34801561051657600080fd5b506102c160045481565b34801561052c57600080fd5b50601254610293906001600160a01b031681565b34801561054c57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610293565b34801561058057600080fd5b50601e546001600160a01b03163314610263565b3480156105a057600080fd5b506102636105af366004610d19565b601b6020526000908152604090205460ff1681565b3480156105d057600080fd5b506103616105df366004610ce9565b610ab6565b3480156105f057600080fd5b50601d546001600160a01b03163314610263565b34801561061057600080fd5b5061036161061f366004610ce9565b610b36565b601f805461063190610da5565b80601f016020809104026020016040519081016040528092919081815260200182805461065d90610da5565b80156106aa5780601f1061067f576101008083540402835291602001916106aa565b820191906000526020600020905b81548152906001019060200180831161068d57829003601f168201915b505050505081565b601c5461010090046001600160a01b031633146107165760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e000000000000000060448201526064015b60405180910390fd5b601d805473ffffffffffffffffffffffffffffffffffffffff19169055565b601c5461010090046001600160a01b031633148061075d5750601e546001600160a01b031633145b6107a95760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040514381527fe0a18c04eb8e161421aacb1263b683e6a062532260b830dc3e42869d278e504f9060200160405180910390a1565b601c5461010090046001600160a01b031633148061082e5750601e546001600160a01b031633145b61087a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b601c5460ff166108cc5760405162461bcd60e51b815260206004820152600e60248201527f63616e6e6f742075706772616465000000000000000000000000000000000000604482015260640161070d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000805461063190610da5565b601c5461010090046001600160a01b031633146109935760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b61099b610c1a565b565b601d546001600160a01b03163314610a1d5760405162461bcd60e51b815260206004820152602c60248201527f63757272656e74206f776e6572206d757374207365742063616c6c657220617360448201527f206e657874206f776e65722e0000000000000000000000000000000000000000606482015260840161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19169055601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010033818102929092179283905560405191926001600160a01b0391900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3565b6020805461063190610da5565b601c5461010090046001600160a01b0316331480610ade5750601e546001600160a01b031633145b610b2a5760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420676f7665726e616e63650000000000000000604482015260640161070d565b610b3381610c80565b50565b601c5461010090046001600160a01b03163314610b955760405162461bcd60e51b815260206004820152601860248201527f63616c6c6572206973206e6f7420746865206f776e65722e0000000000000000604482015260640161070d565b6001600160a01b038116610beb5760405162461bcd60e51b815260206004820152601f60248201527f4e657874206f776e657220697320746865207a65726f20616464726573732e00604482015260640161070d565b601d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b601c80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff169081905560405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b601e546040516001600160a01b038084169216907fde4b3f61490b74c0ed6237523974fe299126bbbf8a8a7482fd220104c59b0c8490600090a3601e805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600060208284031215610cfb57600080fd5b81356001600160a01b0381168114610d1257600080fd5b9392505050565b600060208284031215610d2b57600080fd5b5035919050565b600060208083528351808285015260005b81811015610d5f57858101830151858201604001528201610d43565b81811115610d71576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c90821680610db957607f821691505b60208210811415610df3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea264697066735822122097b1df902181e22605701950373794b4302fcba53cc26fc53386bf686a44201964736f6c63430008060033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.