More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 5,074 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake | 21475407 | 3 days ago | IN | 0 ETH | 0.00099318 | ||||
Unstake | 21461567 | 5 days ago | IN | 0 ETH | 0.00034295 | ||||
Unstake | 21455624 | 6 days ago | IN | 0 ETH | 0.00040474 | ||||
Unstake | 21434416 | 9 days ago | IN | 0 ETH | 0.00059113 | ||||
Unstake | 21399321 | 14 days ago | IN | 0 ETH | 0.00102468 | ||||
Unstake | 21375062 | 17 days ago | IN | 0 ETH | 0.00132811 | ||||
Unstake | 21355272 | 20 days ago | IN | 0 ETH | 0.00088415 | ||||
Unstake | 21353089 | 20 days ago | IN | 0 ETH | 0.00120859 | ||||
Unstake | 21347541 | 21 days ago | IN | 0 ETH | 0.00115892 | ||||
Unstake | 21347106 | 21 days ago | IN | 0 ETH | 0.00124042 | ||||
Unstake | 21328680 | 23 days ago | IN | 0 ETH | 0.00182313 | ||||
Unstake | 21320097 | 25 days ago | IN | 0 ETH | 0.00587777 | ||||
Unstake | 21318512 | 25 days ago | IN | 0 ETH | 0.00239357 | ||||
Unstake | 21272313 | 31 days ago | IN | 0 ETH | 0.00132091 | ||||
Unstake | 21261518 | 33 days ago | IN | 0 ETH | 0.00105898 | ||||
Unstake | 21261034 | 33 days ago | IN | 0 ETH | 0.00070698 | ||||
Unstake | 21250644 | 34 days ago | IN | 0 ETH | 0.00400069 | ||||
Unstake | 21240018 | 36 days ago | IN | 0 ETH | 0.0013889 | ||||
Unstake | 21234316 | 37 days ago | IN | 0 ETH | 0.00069026 | ||||
Unstake | 21232779 | 37 days ago | IN | 0 ETH | 0.00069695 | ||||
Unstake | 21232422 | 37 days ago | IN | 0 ETH | 0.00380207 | ||||
Stake | 21230559 | 37 days ago | IN | 0 ETH | 0.00224959 | ||||
Unstake | 21226595 | 38 days ago | IN | 0 ETH | 0.00094401 | ||||
Unstake | 21220907 | 39 days ago | IN | 0 ETH | 0.00106179 | ||||
Unstake | 21187787 | 43 days ago | IN | 0 ETH | 0.00341032 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
16306220 | 727 days ago | 0.01668217 ETH |
Loading...
Loading
Contract Name:
LosMuertosStaking
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 1000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; /// @author narghev dactyleth import "@openzeppelin/contracts/access/Ownable.sol"; import "erc721a/contracts/interfaces/IERC721A.sol"; contract LosMuertosStaking is Ownable { IERC721A public originalContract; bool public stakingActive = true; struct StakedInfo { address owner; uint256 stakedAt; uint256 tokenId; } mapping(uint256 => StakedInfo) public tokenStakedInfo; uint256 public stakedCount = 0; constructor(address originalContract_) { originalContract = IERC721A(originalContract_); } function stake(uint256[] memory tokenIds) external { require(stakingActive, "Staking not active"); for (uint256 i = 0; i < tokenIds.length; i++) { uint256 tokenId = tokenIds[i]; originalContract.transferFrom(msg.sender, address(this), tokenId); tokenStakedInfo[tokenId] = StakedInfo( msg.sender, uint256(block.timestamp), tokenId ); } stakedCount += tokenIds.length; } function unstake(uint256[] memory tokenIds) external { for (uint256 i = 0; i < tokenIds.length; i++) { uint256 tokenId = tokenIds[i]; StakedInfo memory info = tokenStakedInfo[tokenId]; require(info.owner == msg.sender, "Only owner can unstake"); delete tokenStakedInfo[tokenId]; originalContract.transferFrom(address(this), msg.sender, tokenId); } stakedCount -= tokenIds.length; } function setStakingActive(bool stakingActive_) external onlyOwner { stakingActive = stakingActive_; } function setOriginalContract(address originalContract_) external onlyOwner { originalContract = IERC721A(originalContract_); } function balanceOf(address owner_) public view returns (uint256) { uint256 supply = originalContract.totalSupply(); uint256 count = 0; for (uint256 tokenId = 1; tokenId <= supply; tokenId++) { if (tokenStakedInfo[tokenId].owner == owner_) { count++; } } return count; } function snapshot() public view returns (StakedInfo[] memory) { uint256 supply = originalContract.totalSupply(); StakedInfo[] memory currentState = new StakedInfo[](stakedCount); uint256 count = 0; for (uint256 tokenId = 1; tokenId <= supply; tokenId++) { StakedInfo memory info = tokenStakedInfo[tokenId]; if (info.owner != address(0)) { currentState[count] = info; count++; } } return currentState; } function walletOfOwner(address owner_) public view returns (StakedInfo[] memory) { uint256 supply = originalContract.totalSupply(); uint256 balance = balanceOf(owner_); StakedInfo[] memory tokens = new StakedInfo[](balance); uint256 count = 0; for (uint256 tokenId = 1; tokenId <= supply; tokenId++) { StakedInfo memory token = tokenStakedInfo[tokenId]; if (token.owner == owner_) { tokens[count] = token; count++; } } return tokens; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // ERC721A Contracts v4.1.0 // Creator: Chiru Labs pragma solidity ^0.8.4; import '../IERC721A.sol';
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // ERC721A Contracts v4.1.0 // Creator: Chiru Labs pragma solidity ^0.8.4; /** * @dev Interface of an ERC721A compliant contract. */ interface IERC721A { /** * The caller must own the token or be an approved operator. */ error ApprovalCallerNotOwnerNorApproved(); /** * The token does not exist. */ error ApprovalQueryForNonexistentToken(); /** * The caller cannot approve to their own address. */ error ApproveToCaller(); /** * Cannot query the balance for the zero address. */ error BalanceQueryForZeroAddress(); /** * Cannot mint to the zero address. */ error MintToZeroAddress(); /** * The quantity of tokens minted must be more than zero. */ error MintZeroQuantity(); /** * The token does not exist. */ error OwnerQueryForNonexistentToken(); /** * The caller must own the token or be an approved operator. */ error TransferCallerNotOwnerNorApproved(); /** * The token must be owned by `from`. */ error TransferFromIncorrectOwner(); /** * Cannot safely transfer to a contract that does not implement the ERC721Receiver interface. */ error TransferToNonERC721ReceiverImplementer(); /** * Cannot transfer to the zero address. */ error TransferToZeroAddress(); /** * The token does not exist. */ error URIQueryForNonexistentToken(); /** * The `quantity` minted with ERC2309 exceeds the safety limit. */ error MintERC2309QuantityExceedsLimit(); /** * The `extraData` cannot be set on an unintialized ownership slot. */ error OwnershipNotInitializedForExtraData(); struct TokenOwnership { // The address of the owner. address addr; // Keeps track of the start time of ownership with minimal overhead for tokenomics. uint64 startTimestamp; // Whether the token has been burned. bool burned; // Arbitrary data similar to `startTimestamp` that can be set through `_extraData`. uint24 extraData; } /** * @dev Returns the total amount of tokens stored by the contract. * * Burned tokens are calculated here, use `_totalMinted()` if you want to count just minted tokens. */ function totalSupply() external view returns (uint256); // ============================== // IERC165 // ============================== /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); // ============================== // IERC721 // ============================== /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); // ============================== // IERC721Metadata // ============================== /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); // ============================== // IERC2309 // ============================== /** * @dev Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, * as defined in the ERC2309 standard. See `_mintERC2309` for more details. */ event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to); }
{ "optimizer": { "enabled": true, "runs": 1000 }, "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":"originalContract_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"originalContract","outputs":[{"internalType":"contract IERC721A","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"originalContract_","type":"address"}],"name":"setOriginalContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"stakingActive_","type":"bool"}],"name":"setStakingActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snapshot","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"stakedAt","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct LosMuertosStaking.StakedInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenStakedInfo","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"stakedAt","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"walletOfOwner","outputs":[{"components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"stakedAt","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"internalType":"struct LosMuertosStaking.StakedInfo[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040526001805460ff60a01b1916600160a01b179055600060035534801561002857600080fd5b50604051610fe1380380610fe1833981016040819052610047916100c5565b61005033610075565b600180546001600160a01b0319166001600160a01b03929092169190911790556100f5565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d757600080fd5b81516001600160a01b03811681146100ee57600080fd5b9392505050565b610edd806101046000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395e197a71161008c578063d2003a4811610066578063d2003a481461021e578063e2c345e214610231578063e449f34114610244578063f2fde38b1461025757600080fd5b806395e197a7146101935780639711715a146101f2578063a6ac4b35146101fa57600080fd5b8063438b6300116100c8578063438b63001461013357806370a0823114610153578063715018a6146101665780638da5cb5b1461016e57600080fd5b80630fbf0a93146100ef578063281105e31461010457806339c082d914610117575b600080fd5b6101026100fd366004610ca0565b61026a565b005b610102610112366004610d65565b6103ef565b61012060035481565b6040519081526020015b60405180910390f35b610146610141366004610c70565b610482565b60405161012a9190610db9565b610120610161366004610c70565b61063a565b61010261071b565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161012a565b6101cd6101a1366004610d87565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169183565b604080516001600160a01b03909416845260208401929092529082015260600161012a565b610146610781565b60015461020e90600160a01b900460ff1681565b604051901515815260200161012a565b61010261022c366004610c70565b610924565b60015461017b906001600160a01b031681565b610102610252366004610ca0565b6109ad565b610102610265366004610c70565b610b31565b600154600160a01b900460ff166102c85760405162461bcd60e51b815260206004820152601260248201527f5374616b696e67206e6f7420616374697665000000000000000000000000000060448201526064015b60405180910390fd5b60005b81518110156103d35760008282815181106102e8576102e8610e7b565b60209081029190910101516001546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd90606401600060405180830381600087803b15801561034657600080fd5b505af115801561035a573d6000803e3d6000fd5b5050604080516060810182523381524260208083019182528284018781526000978852600291829052939096209151825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161782555160018201559051930192909255508190506103cb81610e4a565b9150506102cb565b508051600360008282546103e79190610e1b565b909155505050565b6000546001600160a01b031633146104495760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b60018054911515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d457600080fd5b505afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050c9190610da0565b905060006105198461063a565b905060008167ffffffffffffffff81111561053657610536610e91565b60405190808252806020026020018201604052801561059457816020015b610581604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816105545790505b509050600060015b84811161062f57600081815260026020818152604092839020835160608101855281546001600160a01b0390811680835260018401549483019490945291909301549383019390935290918916141561061c578084848151811061060257610602610e7b565b6020026020010181905250828061061890610e4a565b9350505b508061062781610e4a565b91505061059c565b509095945050505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561068b57600080fd5b505afa15801561069f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c39190610da0565b9050600060015b828111610713576000818152600260205260409020546001600160a01b038681169116141561070157816106fd81610e4a565b9250505b8061070b81610e4a565b9150506106ca565b509392505050565b6000546001600160a01b031633146107755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b61077f6000610c13565b565b60606000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d357600080fd5b505afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190610da0565b9050600060035467ffffffffffffffff81111561082a5761082a610e91565b60405190808252806020026020018201604052801561088857816020015b610875604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816108485790505b509050600060015b83811161091b57600081815260026020818152604092839020835160608101855281546001600160a01b031680825260018301549382019390935292015492820192909252901561090857808484815181106108ee576108ee610e7b565b6020026020010181905250828061090490610e4a565b9350505b508061091381610e4a565b915050610890565b50909392505050565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60005b8151811015610b1d5760008282815181106109cd576109cd610e7b565b60209081029190910181015160008181526002808452604091829020825160608101845281546001600160a01b031680825260018301549682019690965291015491810191909152909250903314610a675760405162461bcd60e51b815260206004820152601660248201527f4f6e6c79206f776e65722063616e20756e7374616b650000000000000000000060448201526064016102bf565b6000828152600260208190526040808320805473ffffffffffffffffffffffffffffffffffffffff1916815560018082018590559201929092555490516323b872dd60e01b8152306004820152336024820152604481018490526001600160a01b03909116906323b872dd90606401600060405180830381600087803b158015610af057600080fd5b505af1158015610b04573d6000803e3d6000fd5b5050505050508080610b1590610e4a565b9150506109b0565b508051600360008282546103e79190610e33565b6000546001600160a01b03163314610b8b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b6001600160a01b038116610c075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102bf565b610c1081610c13565b50565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c8257600080fd5b81356001600160a01b0381168114610c9957600080fd5b9392505050565b60006020808385031215610cb357600080fd5b823567ffffffffffffffff80821115610ccb57600080fd5b818501915085601f830112610cdf57600080fd5b813581811115610cf157610cf1610e91565b8060051b604051601f19603f83011681018181108582111715610d1657610d16610e91565b604052828152858101935084860182860187018a1015610d3557600080fd5b600095505b83861015610d58578035855260019590950194938601938601610d3a565b5098975050505050505050565b600060208284031215610d7757600080fd5b81358015158114610c9957600080fd5b600060208284031215610d9957600080fd5b5035919050565b600060208284031215610db257600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b82811015610e0e57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101610dd6565b5091979650505050505050565b60008219821115610e2e57610e2e610e65565b500190565b600082821015610e4557610e45610e65565b500390565b6000600019821415610e5e57610e5e610e65565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122072a5120f2a9ad7af99b59c8f27926f7bb781c15313816291b178ca77027daeab64736f6c63430008070033000000000000000000000000c878671ff88f1374d2186127573e4a63931370fc
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806395e197a71161008c578063d2003a4811610066578063d2003a481461021e578063e2c345e214610231578063e449f34114610244578063f2fde38b1461025757600080fd5b806395e197a7146101935780639711715a146101f2578063a6ac4b35146101fa57600080fd5b8063438b6300116100c8578063438b63001461013357806370a0823114610153578063715018a6146101665780638da5cb5b1461016e57600080fd5b80630fbf0a93146100ef578063281105e31461010457806339c082d914610117575b600080fd5b6101026100fd366004610ca0565b61026a565b005b610102610112366004610d65565b6103ef565b61012060035481565b6040519081526020015b60405180910390f35b610146610141366004610c70565b610482565b60405161012a9190610db9565b610120610161366004610c70565b61063a565b61010261071b565b6000546001600160a01b03165b6040516001600160a01b03909116815260200161012a565b6101cd6101a1366004610d87565b60026020819052600091825260409091208054600182015491909201546001600160a01b039092169183565b604080516001600160a01b03909416845260208401929092529082015260600161012a565b610146610781565b60015461020e90600160a01b900460ff1681565b604051901515815260200161012a565b61010261022c366004610c70565b610924565b60015461017b906001600160a01b031681565b610102610252366004610ca0565b6109ad565b610102610265366004610c70565b610b31565b600154600160a01b900460ff166102c85760405162461bcd60e51b815260206004820152601260248201527f5374616b696e67206e6f7420616374697665000000000000000000000000000060448201526064015b60405180910390fd5b60005b81518110156103d35760008282815181106102e8576102e8610e7b565b60209081029190910101516001546040516323b872dd60e01b8152336004820152306024820152604481018390529192506001600160a01b0316906323b872dd90606401600060405180830381600087803b15801561034657600080fd5b505af115801561035a573d6000803e3d6000fd5b5050604080516060810182523381524260208083019182528284018781526000978852600291829052939096209151825473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161782555160018201559051930192909255508190506103cb81610e4a565b9150506102cb565b508051600360008282546103e79190610e1b565b909155505050565b6000546001600160a01b031633146104495760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b60018054911515600160a01b027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60606000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104d457600080fd5b505afa1580156104e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050c9190610da0565b905060006105198461063a565b905060008167ffffffffffffffff81111561053657610536610e91565b60405190808252806020026020018201604052801561059457816020015b610581604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816105545790505b509050600060015b84811161062f57600081815260026020818152604092839020835160608101855281546001600160a01b0390811680835260018401549483019490945291909301549383019390935290918916141561061c578084848151811061060257610602610e7b565b6020026020010181905250828061061890610e4a565b9350505b508061062781610e4a565b91505061059c565b509095945050505050565b600080600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561068b57600080fd5b505afa15801561069f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c39190610da0565b9050600060015b828111610713576000818152600260205260409020546001600160a01b038681169116141561070157816106fd81610e4a565b9250505b8061070b81610e4a565b9150506106ca565b509392505050565b6000546001600160a01b031633146107755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b61077f6000610c13565b565b60606000600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d357600080fd5b505afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190610da0565b9050600060035467ffffffffffffffff81111561082a5761082a610e91565b60405190808252806020026020018201604052801561088857816020015b610875604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b8152602001906001900390816108485790505b509050600060015b83811161091b57600081815260026020818152604092839020835160608101855281546001600160a01b031680825260018301549382019390935292015492820192909252901561090857808484815181106108ee576108ee610e7b565b6020026020010181905250828061090490610e4a565b9350505b508061091381610e4a565b915050610890565b50909392505050565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60005b8151811015610b1d5760008282815181106109cd576109cd610e7b565b60209081029190910181015160008181526002808452604091829020825160608101845281546001600160a01b031680825260018301549682019690965291015491810191909152909250903314610a675760405162461bcd60e51b815260206004820152601660248201527f4f6e6c79206f776e65722063616e20756e7374616b650000000000000000000060448201526064016102bf565b6000828152600260208190526040808320805473ffffffffffffffffffffffffffffffffffffffff1916815560018082018590559201929092555490516323b872dd60e01b8152306004820152336024820152604481018490526001600160a01b03909116906323b872dd90606401600060405180830381600087803b158015610af057600080fd5b505af1158015610b04573d6000803e3d6000fd5b5050505050508080610b1590610e4a565b9150506109b0565b508051600360008282546103e79190610e33565b6000546001600160a01b03163314610b8b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102bf565b6001600160a01b038116610c075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102bf565b610c1081610c13565b50565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c8257600080fd5b81356001600160a01b0381168114610c9957600080fd5b9392505050565b60006020808385031215610cb357600080fd5b823567ffffffffffffffff80821115610ccb57600080fd5b818501915085601f830112610cdf57600080fd5b813581811115610cf157610cf1610e91565b8060051b604051601f19603f83011681018181108582111715610d1657610d16610e91565b604052828152858101935084860182860187018a1015610d3557600080fd5b600095505b83861015610d58578035855260019590950194938601938601610d3a565b5098975050505050505050565b600060208284031215610d7757600080fd5b81358015158114610c9957600080fd5b600060208284031215610d9957600080fd5b5035919050565b600060208284031215610db257600080fd5b5051919050565b602080825282518282018190526000919060409081850190868401855b82811015610e0e57815180516001600160a01b0316855286810151878601528501518585015260609093019290850190600101610dd6565b5091979650505050505050565b60008219821115610e2e57610e2e610e65565b500190565b600082821015610e4557610e45610e65565b500390565b6000600019821415610e5e57610e5e610e65565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122072a5120f2a9ad7af99b59c8f27926f7bb781c15313816291b178ca77027daeab64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c878671ff88f1374d2186127573e4a63931370fc
-----Decoded View---------------
Arg [0] : originalContract_ (address): 0xC878671fF88f1374d2186127573E4A63931370FC
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000c878671ff88f1374d2186127573e4a63931370fc
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.