More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 558 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 20256269 | 18 days ago | IN | 0 ETH | 0.00077637 | ||||
Unstake | 19988037 | 55 days ago | IN | 0 ETH | 0.0008718 | ||||
Unstake | 16821254 | 500 days ago | IN | 0 ETH | 0.00255151 | ||||
Unstake | 16821251 | 500 days ago | IN | 0 ETH | 0.003491 | ||||
Unstake | 16710351 | 515 days ago | IN | 0 ETH | 0.00159996 | ||||
Unstake | 16463241 | 550 days ago | IN | 0 ETH | 0.00264649 | ||||
Unstake | 16415606 | 557 days ago | IN | 0 ETH | 0.00169712 | ||||
Unstake | 16411088 | 557 days ago | IN | 0 ETH | 0.00282432 | ||||
Unstake | 16332160 | 568 days ago | IN | 0 ETH | 0.00159257 | ||||
Unstake | 16328419 | 569 days ago | IN | 0 ETH | 0.00322465 | ||||
Unstake | 16322077 | 570 days ago | IN | 0 ETH | 0.00268794 | ||||
Unstake | 16250855 | 580 days ago | IN | 0 ETH | 0.00158761 | ||||
Unstake | 16213911 | 585 days ago | IN | 0 ETH | 0.00113146 | ||||
Unstake | 16213906 | 585 days ago | IN | 0 ETH | 0.00136145 | ||||
Unstake | 16187472 | 589 days ago | IN | 0 ETH | 0.00139997 | ||||
Unstake | 16067005 | 605 days ago | IN | 0 ETH | 0.00111911 | ||||
Unstake | 16066951 | 605 days ago | IN | 0 ETH | 0.00113886 | ||||
Unstake | 16044540 | 609 days ago | IN | 0 ETH | 0.0013144 | ||||
Unstake | 16035834 | 610 days ago | IN | 0 ETH | 0.00158775 | ||||
Unstake | 16000932 | 615 days ago | IN | 0 ETH | 0.00224375 | ||||
Stake | 15929284 | 625 days ago | IN | 0 ETH | 0.0020185 | ||||
Stake | 15912155 | 627 days ago | IN | 0 ETH | 0.00284509 | ||||
Stake | 15912148 | 627 days ago | IN | 0 ETH | 0.00270981 | ||||
Stake | 15912145 | 627 days ago | IN | 0 ETH | 0.00275769 | ||||
Stake | 15912143 | 627 days ago | IN | 0 ETH | 0.00294297 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PodiumGenesisStaking
Compiler Version
v0.8.13+commit.abaa5c0e
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.4; /* ---------------------------------------------------------------------------- * Staking for the Podium Genesis NFT * Note this allows for staking and calculation. No withdrawal exists yet. * This will be in another contract. Allow people to start earning ASAP. * Daily staking rate set to 100 as round number. Rate will be multiplied/devided * With ERC20 implementation * / -------------------------------------------------------------------------- */ import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract PodiumGenesisStaking is ERC721Holder, ReentrancyGuard, Ownable, Pausable { // Declerations // ------------------------------------------------------------------------ IERC721 public PodiumGenesis; // Podium Genesis NFT to be staked uint256 public rewardRate = 66; // Daily reward rate. See above. mapping(address => bool) public teamMember; address withdrawContract; uint256 public totalStaked; mapping(address => uint256) public balanceOfStaked; // Count of staked by Address mapping(uint256 => address) public stakedAssetsByToken; // Staked assets and owner mapping(address => uint256[]) public stakedAssetsByAddr; // Staked assets and owner mapping(address => uint256) public earnedRewards; // Earned so far mapping(address => uint256) public dataLastUpdated; // when was address data updated mapping(bytes4 => bool) public functionLocked; constructor(address _PodiumGenesis) { PodiumGenesis = IERC721(_PodiumGenesis); teamMember[msg.sender] = true; } event Staked( address indexed addressSender, uint256 quantity, uint256[] tokenIds ); event UnStaked( address indexed addressSender, uint256 quantity, uint256[] tokenIds ); // Staking functions and helpers // ------------------------------------------------------------------------ /* * @notice Stake 1 or more NFTs * @param `tokenIds` a list of NFTs to be staked */ function stake(uint256[] memory tokenIds) external nonReentrant whenNotPaused updateRewardData { require(tokenIds.length > 0, "Need to provide tokenIds"); uint256 quantity; // Do not use length as safeTransfer check not performed for (uint256 i = 0; i < tokenIds.length; i += 1) { PodiumGenesis.safeTransferFrom(msg.sender, address(this), tokenIds[i]); stakedAssetsByToken[tokenIds[i]] = msg.sender; stakedAssetsByAddr[msg.sender].push(tokenIds[i]); quantity++; } totalStaked += quantity; balanceOfStaked[msg.sender] += quantity; emit Staked(msg.sender, quantity, tokenIds); } /* * @notice Withdraw 1 or more NFTs * @param `tokenIds` a list of NFTs to be unstaked */ function unstake(uint256[] memory tokenIds) public nonReentrant whenNotPaused updateRewardData { require(tokenIds.length != 0, "Staking: No tokenIds provided"); uint256 quantity; for (uint256 i = 0; i < tokenIds.length; i += 1) { // Confirm ownership require( stakedAssetsByToken[tokenIds[i]] == msg.sender, "Staking: Not the staker of the token" ); // Replace the unstake with the last in the list uint256 popped = stakedAssetsByAddr[msg.sender][balanceOfStaked[msg.sender] - 1]; stakedAssetsByAddr[msg.sender].pop(); if (popped != tokenIds[i]) { uint256 tokenStakeIndex = 0; while (stakedAssetsByAddr[msg.sender][tokenStakeIndex] != tokenIds[i]) { tokenStakeIndex++; } stakedAssetsByAddr[msg.sender][tokenStakeIndex] = popped; } stakedAssetsByToken[tokenIds[i]] = address(0); quantity++; // Send back the NFT PodiumGenesis.safeTransferFrom(address(this), msg.sender, tokenIds[i]); balanceOfStaked[msg.sender]--; } totalStaked -= quantity; emit UnStaked(msg.sender, quantity, tokenIds); } /* * @notice Modifier called to updateRewards when needed (by stake and unstake, write them) */ modifier updateRewardData() { earnedRewards[msg.sender] += _getPending(msg.sender); dataLastUpdated[msg.sender] = block.timestamp; _; } /* * @notice Update rewards rate for tokens * @param `_newReward` new reward value */ function updateRewardRate(uint256 _newReward) public onlyTeamMember { rewardRate = _newReward; } /* * @notice How many pending tokens are earned * Note this is used internally and added to earned set later * @param `account` The address of the staker account * @return The amount of pending tokens */ function _getPending(address account) internal view returns (uint256) { return ( (balanceOfStaked[account] * rewardRate) * ((block.timestamp - dataLastUpdated[account]) / 1 days) ); } /* * @notice Withdraw funds from the child contract * @param account for which withdrawal will be done * returns amount to be withdrawn */ function withdraw(address account) external onlyWithdrawContract updateRewardData nonReentrant returns(uint256) { uint256 withdrawAmount = getEarnedAmount(account); earnedRewards[account] = 0; return withdrawAmount; } /* * @notice Total ammount earned * @param `account` The address of the staker account * @return The total ammount earned */ function getEarnedAmount(address account) public view returns (uint256) { return earnedRewards[account] + _getPending(account); } /* * @notice Pause used to pause staking if needed */ function pause() external onlyTeamMember { _pause(); } /* * @notice Unpause used to unpause staking if needed */ function unpause() external onlyTeamMember { _unpause(); } /** * @dev Throws if called by any account other than team members */ modifier onlyTeamMember() { require(teamMember[msg.sender], "Caller is not an owner"); _; } /** * Add new team meber role with admin permissions */ function addTeamMemberAdmin(address newMember) external onlyTeamMember { teamMember[newMember] = true; } /** * Remove team meber role from admin permissions */ function removeTeamMemberAdmin(address newMember) external onlyTeamMember { teamMember[newMember] = false; } /** * Returns true if address is team member */ function isTeamMemberAdmin(address checkAddress) public view onlyTeamMember returns (bool) { return teamMember[checkAddress]; } /** * @dev Throws if called by any account other than team members */ modifier onlyWithdrawContract() { require(withdrawContract == msg.sender, "Caller is not withdraw contract"); _; } /** * Updates contract that can withdraw */ function updateWithdrawContract(address _newWithdrawContract) external lockable onlyTeamMember { withdrawContract = _newWithdrawContract; } /** * @notice Modifier applied to functions that will be disabled when they're no longer needed */ modifier lockable() { require(!functionLocked[msg.sig], "Function has been locked"); _; } /** * @notice Lock individual functions that are no longer needed * @dev Only affects functions with the lockable modifier * @param id First 4 bytes of the calldata (i.e. function identifier) */ function lockFunction(bytes4 id) public onlyTeamMember { functionLocked[id] = true; } /** * Recover tokens accidentally sent to contract without explicit owner */ function strandedRecovery(address to, uint256 tokenId) external onlyTeamMember { require(stakedAssetsByToken[tokenId] == address(0), "Token is not in limbo"); PodiumGenesis.safeTransferFrom(address(this), to, tokenId); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @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`, 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 Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @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 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); /** * @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; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/utils/ERC721Holder.sol) pragma solidity ^0.8.0; import "../IERC721Receiver.sol"; /** * @dev Implementation of the {IERC721Receiver} interface. * * Accepts all token transfers. * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}. */ contract ERC721Holder is IERC721Receiver { /** * @dev See {IERC721Receiver-onERC721Received}. * * Always returns `IERC721Receiver.onERC721Received.selector`. */ function onERC721Received( address, address, uint256, bytes memory ) public virtual override returns (bytes4) { return this.onERC721Received.selector; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (security/Pausable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT // 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 // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface 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); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/IERC721Receiver.sol) pragma solidity ^0.8.0; /** * @title ERC721 token receiver interface * @dev Interface for any contract that wants to support safeTransfers * from ERC721 asset contracts. */ interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); }
// 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; } }
{ "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":"_PodiumGenesis","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addressSender","type":"address"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addressSender","type":"address"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"UnStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"PodiumGenesis","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMember","type":"address"}],"name":"addTeamMemberAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOfStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dataLastUpdated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"earnedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"functionLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getEarnedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"checkAddress","type":"address"}],"name":"isTeamMemberAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"id","type":"bytes4"}],"name":"lockFunction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newMember","type":"address"}],"name":"removeTeamMemberAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedAssetsByAddr","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedAssetsByToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"strandedRecovery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"teamMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","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":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newReward","type":"uint256"}],"name":"updateRewardRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newWithdrawContract","type":"address"}],"name":"updateWithdrawContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052604260035534801561001557600080fd5b5060405162001b3938038062001b39833981016040819052610036916100e3565b600160005561004433610091565b6001805460ff60a01b19168155600280546001600160a01b0319166001600160a01b039390931692909217909155336000908152600460205260409020805460ff19169091179055610113565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156100f557600080fd5b81516001600160a01b038116811461010c57600080fd5b9392505050565b611a1680620001236000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806371863141116100f9578063943f990911610097578063cef5c2cb11610071578063cef5c2cb14610430578063e449f34114610443578063f2fde38b14610456578063f3d4d96d1461046957600080fd5b8063943f9909146103d15780639ef3a261146103fa578063bbadfe761461040d57600080fd5b806382d366d0116100d357806382d366d0146103855780638456cb59146103a55780638da5cb5b146103ad57806391f5a90c146103be57600080fd5b806371863141146103605780637b0a47ee14610373578063817b1cd21461037c57600080fd5b80634d0e09e5116101665780635c975abb116101405780635c975abb146103085780636301c4041461031a5780636cda6af41461032d578063715018a61461035857600080fd5b80634d0e09e5146102c25780635050bfd3146102e257806351cff8d9146102f557600080fd5b8063303fe55d116101a2578063303fe55d1461025457806334531828146102875780633455f41e1461029a5780633f4ba83a146102ba57600080fd5b80630fbf0a93146101c9578063150b7a02146101de5780631a853e9d14610233575b600080fd5b6101dc6101d73660046116a4565b61047c565b005b6102156101ec366004611761565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b610246610241366004611821565b6107a6565b60405190815260200161022a565b610277610262366004611821565b60046020526000908152604090205460ff1681565b604051901515815260200161022a565b6101dc610295366004611843565b6107da565b6102466102a8366004611821565b60076020526000908152604090205481565b6101dc610857565b6102466102d0366004611821565b600b6020526000908152604090205481565b6102776102f0366004611821565b6108b9565b610246610303366004611821565b610934565b600154600160a01b900460ff16610277565b61024661032836600461186d565b610a57565b600254610340906001600160a01b031681565b6040516001600160a01b03909116815260200161022a565b6101dc610a88565b6101dc61036e366004611821565b610aec565b61024660035481565b61024660065481565b610246610393366004611821565b600a6020526000908152604090205481565b6101dc610b68565b6001546001600160a01b0316610340565b6101dc6103cc36600461186d565b610bc8565b6103406103df366004611897565b6008602052600090815260409020546001600160a01b031681565b6101dc610408366004611897565b610d0e565b61027761041b366004611843565b600c6020526000908152604090205460ff1681565b6101dc61043e366004611821565b610d6b565b6101dc6104513660046116a4565b610e5c565b6101dc610464366004611821565b611313565b6101dc610477366004611821565b6113f5565b6002600054036104d35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055600154600160a01b900460ff16156105255760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ca565b61052e3361146e565b336000908152600a60205260408120805490919061054d9084906118c6565b9091555050336000908152600b6020526040902042905580516105b25760405162461bcd60e51b815260206004820152601860248201527f4e65656420746f2070726f7669646520746f6b656e496473000000000000000060448201526064016104ca565b6000805b82518110156107255760025483516001600160a01b03909116906342842e0e90339030908790869081106105ec576105ec6118de565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050503360086000858481518110610675576106756118de565b6020026020010151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060096000336001600160a01b03166001600160a01b031681526020019081526020016000208382815181106106e6576106e66118de565b602090810291909101810151825460018101845560009384529190922001558161070f816118f4565b925061071e90506001826118c6565b90506105b6565b50806006600082825461073891906118c6565b9091555050336000908152600760205260408120805483929061075c9084906118c6565b909155505060405133907fb18ab713c223cf8d1394fb3018faad3e87f34414cc9d74b6eff3510d05359d8590610795908490869061190d565b60405180910390a250506001600055565b60006107b18261146e565b6001600160a01b0383166000908152600a60205260409020546107d491906118c6565b92915050565b3360009081526004602052604090205460ff166108325760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6001600160e01b0319166000908152600c60205260409020805460ff19166001179055565b3360009081526004602052604090205460ff166108af5760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6108b76114d0565b565b3360009081526004602052604081205460ff166109115760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b506001600160a01b03811660009081526004602052604090205460ff165b919050565b6005546000906001600160a01b031633146109915760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f7420776974686472617720636f6e74726163740060448201526064016104ca565b61099a3361146e565b336000908152600a6020526040812080549091906109b99084906118c6565b9091555050336000908152600b602052604081204290555460011901610a215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104ca565b60026000908155610a31836107a6565b6001600160a01b0384166000908152600a60205260408120559150506001600055919050565b60096020528160005260406000208181548110610a7357600080fd5b90600052602060002001600091509150505481565b6001546001600160a01b03163314610ae25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ca565b6108b76000611576565b3360009081526004602052604090205460ff16610b445760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b3360009081526004602052604090205460ff16610bc05760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6108b76115d5565b3360009081526004602052604090205460ff16610c205760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6000818152600860205260409020546001600160a01b031615610c855760405162461bcd60e51b815260206004820152601560248201527f546f6b656e206973206e6f7420696e206c696d626f000000000000000000000060448201526064016104ca565b6002546040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03848116602483015260448201849052909116906342842e0e90606401600060405180830381600087803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b505050505050565b3360009081526004602052604090205460ff16610d665760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b600355565b600080356001600160e01b0319168152600c602052604090205460ff1615610dd55760405162461bcd60e51b815260206004820152601860248201527f46756e6374696f6e20686173206265656e206c6f636b6564000000000000000060448201526064016104ca565b3360009081526004602052604090205460ff16610e2d5760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600260005403610eae5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104ca565b6002600055600154600160a01b900460ff1615610f005760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ca565b610f093361146e565b336000908152600a602052604081208054909190610f289084906118c6565b9091555050336000908152600b6020526040812042905581519003610f8f5760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a204e6f20746f6b656e4964732070726f766964656400000060448201526064016104ca565b6000805b82518110156112c757336001600160a01b031660086000858481518110610fbc57610fbc6118de565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146110525760405162461bcd60e51b8152602060048201526024808201527f5374616b696e673a204e6f7420746865207374616b6572206f6620746865207460448201527f6f6b656e0000000000000000000000000000000000000000000000000000000060648201526084016104ca565b33600090815260096020908152604080832060079092528220546110789060019061195b565b81548110611088576110886118de565b600091825260208083209091015433835260099091526040909120805491925090806110b6576110b6611972565b600190038181906000526020600020016000905590558382815181106110de576110de6118de565b602002602001015181146111935760005b848381518110611101576111016118de565b602002602001015160096000336001600160a01b03166001600160a01b03168152602001908152602001600020828154811061113f5761113f6118de565b9060005260206000200154146111615780611159816118f4565b9150506110ef565b336000908152600960205260409020805483919083908110611185576111856118de565b600091825260209091200155505b6000600860008685815181106111ab576111ab6118de565b6020026020010151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082806111f0906118f4565b60025486519195506001600160a01b031691506342842e0e903090339088908790811061121f5761121f6118de565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561127957600080fd5b505af115801561128d573d6000803e3d6000fd5b50503360009081526007602052604081208054935091506112ad83611988565b9190505550506001816112c091906118c6565b9050610f93565b5080600660008282546112da919061195b565b909155505060405133907fef4ce4a0205d268e0effbc76aaabb2ad2509ec58a2e9013645347d3c3cd9be4290610795908490869061190d565b6001546001600160a01b0316331461136d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ca565b6001600160a01b0381166113e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ca565b6113f281611576565b50565b3360009081526004602052604090205460ff1661144d5760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0381166000908152600b60205260408120546201518090611496904261195b565b6114a0919061199f565b6003546001600160a01b0384166000908152600760205260409020546114c691906119c1565b6107d491906119c1565b600154600160a01b900460ff166115295760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104ca565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600154600160a01b900460ff16156116225760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ca565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115593390565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561169c5761169c61165d565b604052919050565b600060208083850312156116b757600080fd5b823567ffffffffffffffff808211156116cf57600080fd5b818501915085601f8301126116e357600080fd5b8135818111156116f5576116f561165d565b8060051b9150611706848301611673565b818152918301840191848101908884111561172057600080fd5b938501935b8385101561173e57843582529385019390850190611725565b98975050505050505050565b80356001600160a01b038116811461092f57600080fd5b6000806000806080858703121561177757600080fd5b6117808561174a565b9350602061178f81870161174a565b935060408601359250606086013567ffffffffffffffff808211156117b357600080fd5b818801915088601f8301126117c757600080fd5b8135818111156117d9576117d961165d565b6117eb601f8201601f19168501611673565b9150808252898482850101111561180157600080fd5b808484018584013760008482840101525080935050505092959194509250565b60006020828403121561183357600080fd5b61183c8261174a565b9392505050565b60006020828403121561185557600080fd5b81356001600160e01b03198116811461183c57600080fd5b6000806040838503121561188057600080fd5b6118898361174a565b946020939093013593505050565b6000602082840312156118a957600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156118d9576118d96118b0565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201611906576119066118b0565b5060010190565b6000604082018483526020604081850152818551808452606086019150828701935060005b8181101561194e57845183529383019391830191600101611932565b5090979650505050505050565b60008282101561196d5761196d6118b0565b500390565b634e487b7160e01b600052603160045260246000fd5b600081611997576119976118b0565b506000190190565b6000826119bc57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119db576119db6118b0565b50029056fea26469706673582212206f8b78cb641328153223bc41ac017e35b7ad97c489d4f33278455b8b5fc7aaaa64736f6c634300080d0033000000000000000000000000b41cfee86fbd91d47e37816c33dae626c93de01a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806371863141116100f9578063943f990911610097578063cef5c2cb11610071578063cef5c2cb14610430578063e449f34114610443578063f2fde38b14610456578063f3d4d96d1461046957600080fd5b8063943f9909146103d15780639ef3a261146103fa578063bbadfe761461040d57600080fd5b806382d366d0116100d357806382d366d0146103855780638456cb59146103a55780638da5cb5b146103ad57806391f5a90c146103be57600080fd5b806371863141146103605780637b0a47ee14610373578063817b1cd21461037c57600080fd5b80634d0e09e5116101665780635c975abb116101405780635c975abb146103085780636301c4041461031a5780636cda6af41461032d578063715018a61461035857600080fd5b80634d0e09e5146102c25780635050bfd3146102e257806351cff8d9146102f557600080fd5b8063303fe55d116101a2578063303fe55d1461025457806334531828146102875780633455f41e1461029a5780633f4ba83a146102ba57600080fd5b80630fbf0a93146101c9578063150b7a02146101de5780631a853e9d14610233575b600080fd5b6101dc6101d73660046116a4565b61047c565b005b6102156101ec366004611761565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020015b60405180910390f35b610246610241366004611821565b6107a6565b60405190815260200161022a565b610277610262366004611821565b60046020526000908152604090205460ff1681565b604051901515815260200161022a565b6101dc610295366004611843565b6107da565b6102466102a8366004611821565b60076020526000908152604090205481565b6101dc610857565b6102466102d0366004611821565b600b6020526000908152604090205481565b6102776102f0366004611821565b6108b9565b610246610303366004611821565b610934565b600154600160a01b900460ff16610277565b61024661032836600461186d565b610a57565b600254610340906001600160a01b031681565b6040516001600160a01b03909116815260200161022a565b6101dc610a88565b6101dc61036e366004611821565b610aec565b61024660035481565b61024660065481565b610246610393366004611821565b600a6020526000908152604090205481565b6101dc610b68565b6001546001600160a01b0316610340565b6101dc6103cc36600461186d565b610bc8565b6103406103df366004611897565b6008602052600090815260409020546001600160a01b031681565b6101dc610408366004611897565b610d0e565b61027761041b366004611843565b600c6020526000908152604090205460ff1681565b6101dc61043e366004611821565b610d6b565b6101dc6104513660046116a4565b610e5c565b6101dc610464366004611821565b611313565b6101dc610477366004611821565b6113f5565b6002600054036104d35760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600055600154600160a01b900460ff16156105255760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ca565b61052e3361146e565b336000908152600a60205260408120805490919061054d9084906118c6565b9091555050336000908152600b6020526040902042905580516105b25760405162461bcd60e51b815260206004820152601860248201527f4e65656420746f2070726f7669646520746f6b656e496473000000000000000060448201526064016104ca565b6000805b82518110156107255760025483516001600160a01b03909116906342842e0e90339030908790869081106105ec576105ec6118de565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561064657600080fd5b505af115801561065a573d6000803e3d6000fd5b505050503360086000858481518110610675576106756118de565b6020026020010151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060096000336001600160a01b03166001600160a01b031681526020019081526020016000208382815181106106e6576106e66118de565b602090810291909101810151825460018101845560009384529190922001558161070f816118f4565b925061071e90506001826118c6565b90506105b6565b50806006600082825461073891906118c6565b9091555050336000908152600760205260408120805483929061075c9084906118c6565b909155505060405133907fb18ab713c223cf8d1394fb3018faad3e87f34414cc9d74b6eff3510d05359d8590610795908490869061190d565b60405180910390a250506001600055565b60006107b18261146e565b6001600160a01b0383166000908152600a60205260409020546107d491906118c6565b92915050565b3360009081526004602052604090205460ff166108325760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6001600160e01b0319166000908152600c60205260409020805460ff19166001179055565b3360009081526004602052604090205460ff166108af5760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6108b76114d0565b565b3360009081526004602052604081205460ff166109115760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b506001600160a01b03811660009081526004602052604090205460ff165b919050565b6005546000906001600160a01b031633146109915760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f7420776974686472617720636f6e74726163740060448201526064016104ca565b61099a3361146e565b336000908152600a6020526040812080549091906109b99084906118c6565b9091555050336000908152600b602052604081204290555460011901610a215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104ca565b60026000908155610a31836107a6565b6001600160a01b0384166000908152600a60205260408120559150506001600055919050565b60096020528160005260406000208181548110610a7357600080fd5b90600052602060002001600091509150505481565b6001546001600160a01b03163314610ae25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ca565b6108b76000611576565b3360009081526004602052604090205460ff16610b445760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b3360009081526004602052604090205460ff16610bc05760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6108b76115d5565b3360009081526004602052604090205460ff16610c205760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6000818152600860205260409020546001600160a01b031615610c855760405162461bcd60e51b815260206004820152601560248201527f546f6b656e206973206e6f7420696e206c696d626f000000000000000000000060448201526064016104ca565b6002546040517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03848116602483015260448201849052909116906342842e0e90606401600060405180830381600087803b158015610cf257600080fd5b505af1158015610d06573d6000803e3d6000fd5b505050505050565b3360009081526004602052604090205460ff16610d665760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b600355565b600080356001600160e01b0319168152600c602052604090205460ff1615610dd55760405162461bcd60e51b815260206004820152601860248201527f46756e6374696f6e20686173206265656e206c6f636b6564000000000000000060448201526064016104ca565b3360009081526004602052604090205460ff16610e2d5760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b600260005403610eae5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016104ca565b6002600055600154600160a01b900460ff1615610f005760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ca565b610f093361146e565b336000908152600a602052604081208054909190610f289084906118c6565b9091555050336000908152600b6020526040812042905581519003610f8f5760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a204e6f20746f6b656e4964732070726f766964656400000060448201526064016104ca565b6000805b82518110156112c757336001600160a01b031660086000858481518110610fbc57610fbc6118de565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146110525760405162461bcd60e51b8152602060048201526024808201527f5374616b696e673a204e6f7420746865207374616b6572206f6620746865207460448201527f6f6b656e0000000000000000000000000000000000000000000000000000000060648201526084016104ca565b33600090815260096020908152604080832060079092528220546110789060019061195b565b81548110611088576110886118de565b600091825260208083209091015433835260099091526040909120805491925090806110b6576110b6611972565b600190038181906000526020600020016000905590558382815181106110de576110de6118de565b602002602001015181146111935760005b848381518110611101576111016118de565b602002602001015160096000336001600160a01b03166001600160a01b03168152602001908152602001600020828154811061113f5761113f6118de565b9060005260206000200154146111615780611159816118f4565b9150506110ef565b336000908152600960205260409020805483919083908110611185576111856118de565b600091825260209091200155505b6000600860008685815181106111ab576111ab6118de565b6020026020010151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082806111f0906118f4565b60025486519195506001600160a01b031691506342842e0e903090339088908790811061121f5761121f6118de565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561127957600080fd5b505af115801561128d573d6000803e3d6000fd5b50503360009081526007602052604081208054935091506112ad83611988565b9190505550506001816112c091906118c6565b9050610f93565b5080600660008282546112da919061195b565b909155505060405133907fef4ce4a0205d268e0effbc76aaabb2ad2509ec58a2e9013645347d3c3cd9be4290610795908490869061190d565b6001546001600160a01b0316331461136d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ca565b6001600160a01b0381166113e95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ca565b6113f281611576565b50565b3360009081526004602052604090205460ff1661144d5760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71037bbb732b960511b60448201526064016104ca565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6001600160a01b0381166000908152600b60205260408120546201518090611496904261195b565b6114a0919061199f565b6003546001600160a01b0384166000908152600760205260409020546114c691906119c1565b6107d491906119c1565b600154600160a01b900460ff166115295760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016104ca565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600154600160a01b900460ff16156116225760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104ca565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115593390565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561169c5761169c61165d565b604052919050565b600060208083850312156116b757600080fd5b823567ffffffffffffffff808211156116cf57600080fd5b818501915085601f8301126116e357600080fd5b8135818111156116f5576116f561165d565b8060051b9150611706848301611673565b818152918301840191848101908884111561172057600080fd5b938501935b8385101561173e57843582529385019390850190611725565b98975050505050505050565b80356001600160a01b038116811461092f57600080fd5b6000806000806080858703121561177757600080fd5b6117808561174a565b9350602061178f81870161174a565b935060408601359250606086013567ffffffffffffffff808211156117b357600080fd5b818801915088601f8301126117c757600080fd5b8135818111156117d9576117d961165d565b6117eb601f8201601f19168501611673565b9150808252898482850101111561180157600080fd5b808484018584013760008482840101525080935050505092959194509250565b60006020828403121561183357600080fd5b61183c8261174a565b9392505050565b60006020828403121561185557600080fd5b81356001600160e01b03198116811461183c57600080fd5b6000806040838503121561188057600080fd5b6118898361174a565b946020939093013593505050565b6000602082840312156118a957600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156118d9576118d96118b0565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201611906576119066118b0565b5060010190565b6000604082018483526020604081850152818551808452606086019150828701935060005b8181101561194e57845183529383019391830191600101611932565b5090979650505050505050565b60008282101561196d5761196d6118b0565b500390565b634e487b7160e01b600052603160045260246000fd5b600081611997576119976118b0565b506000190190565b6000826119bc57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156119db576119db6118b0565b50029056fea26469706673582212206f8b78cb641328153223bc41ac017e35b7ad97c489d4f33278455b8b5fc7aaaa64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b41cfee86fbd91d47e37816c33dae626c93de01a
-----Decoded View---------------
Arg [0] : _PodiumGenesis (address): 0xb41CfeE86fbD91D47E37816C33DAe626c93dE01A
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b41cfee86fbd91d47e37816c33dae626c93de01a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.