More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,934 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Soft | 18147280 | 489 days ago | IN | 0 ETH | 0.00030767 | ||||
Unstake All | 17092390 | 637 days ago | IN | 0 ETH | 0.00293767 | ||||
Unstake All | 16626280 | 703 days ago | IN | 0 ETH | 0.0023665 | ||||
Unstake All | 16140665 | 771 days ago | IN | 0 ETH | 0.00210999 | ||||
Unstake All | 16129597 | 773 days ago | IN | 0 ETH | 0.00225365 | ||||
Unstake All | 16128760 | 773 days ago | IN | 0 ETH | 0.00182621 | ||||
Unstake All | 15760665 | 824 days ago | IN | 0 ETH | 0.00143431 | ||||
Unstake All | 15760664 | 824 days ago | IN | 0 ETH | 0.00188268 | ||||
Unstake All | 15594644 | 847 days ago | IN | 0 ETH | 0.00088554 | ||||
Unstake All | 15490847 | 863 days ago | IN | 0 ETH | 0.00383398 | ||||
Unstake All | 15470819 | 866 days ago | IN | 0 ETH | 0.00092556 | ||||
Unstake All | 15463237 | 867 days ago | IN | 0 ETH | 0.00097825 | ||||
Unstake All | 15439496 | 871 days ago | IN | 0 ETH | 0.00135704 | ||||
Unstake All | 15439177 | 871 days ago | IN | 0 ETH | 0.00121366 | ||||
Unstake All | 15413834 | 875 days ago | IN | 0 ETH | 0.00084922 | ||||
Unstake All | 15397943 | 878 days ago | IN | 0 ETH | 0.00367911 | ||||
Unstake All | 15374552 | 882 days ago | IN | 0 ETH | 0.00151002 | ||||
Unstake All | 15373142 | 882 days ago | IN | 0 ETH | 0.0042262 | ||||
Unstake All | 15328483 | 889 days ago | IN | 0 ETH | 0.00162502 | ||||
Unstake All | 15319205 | 890 days ago | IN | 0 ETH | 0.00165597 | ||||
Unstake All | 15286777 | 895 days ago | IN | 0 ETH | 0.00113036 | ||||
Unstake All | 15276621 | 897 days ago | IN | 0 ETH | 0.00232091 | ||||
Unstake All | 15227405 | 905 days ago | IN | 0 ETH | 0.00363734 | ||||
Unstake All | 15199286 | 909 days ago | IN | 0 ETH | 0.00087295 | ||||
Unstake All | 15199286 | 909 days ago | IN | 0 ETH | 0.00105717 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
AGStake
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 LICENSE pragma solidity ^0.8.0; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol"; interface IAlphaGang { function balanceOf(address account, uint256 id) external view returns (uint256); function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) external; function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) external; } interface IGangToken { function mint(address to, uint256 amount) external; } contract AGStake is Ownable, ERC1155Holder { event Stake(address owner, uint256 tokenId, uint256 count); event Unstake(address owner, uint256 tokenId, uint256 count); event StakeAll(address owner, uint256[] tokenIds, uint256[] counts); event UnstakeAll(address owner, uint256[] tokenIds, uint256[] counts); /** * Event called when a stake is claimed by user * Args: * owner: address for which it was claimed * amount: amount of $GANG tokens claimed * count: count of staked(hard or soft) tokens * multiplier: flag indicating wheat the applied multiplier is */ event Claim( address owner, uint256 amount, uint256 count, uint256 multiplier ); // references to the AG contracts IAlphaGang alphaGang; IGangToken gangToken; uint256 public ogStakeRate = 496031746031746; uint256 public softStakeRate = 124007936507936; // maps tokenId to stake mapping(uint256 => mapping(address => uint256)) private vault; // records block timestamp when last claim occured mapping(address => uint256) lastClaim; mapping(address => uint256) lastSoftClaim; // default start time for claiming rewards uint256 public immutable START; constructor(IAlphaGang _nft, IGangToken _token) { alphaGang = _nft; gangToken = _token; START = block.timestamp; } function stakeSingle(uint256 tokenId, uint256 tokenCount) external { address _owner = msg.sender; alphaGang.safeTransferFrom( _owner, address(this), tokenId, tokenCount, "" ); // claim unstaked tokens, since count/rate will change // claiming after transfer, not to waste too much gas in case user doesn't have any tokens claimForAddress(_owner, true); claimForAddress(_owner, false); unchecked { vault[tokenId][_owner] += tokenCount; } emit Stake(_owner, tokenId, tokenCount); } function unstakeSingle(uint256 tokenId, uint256 tokenCount) external { address _owner = msg.sender; uint256 totalStaked = vault[tokenId][_owner]; require( totalStaked >= 0, "You do have any tokens available for unstaking" ); require( totalStaked >= tokenCount, "You do not have requested token amount available for unstaking" ); // claim rewards before unstaking claimForAddress(_owner, true); claimForAddress(_owner, false); unchecked { vault[tokenId][_owner] -= tokenCount; } alphaGang.safeTransferFrom( address(this), _owner, tokenId, tokenCount, "" ); emit Unstake(msg.sender, tokenId, tokenCount); } function _stakeAll() internal { address _owner = msg.sender; uint256[] memory totalAvailable = unstakedBalanceOf(_owner); uint256[] memory tokens = new uint256[](3); tokens[0] = 1; tokens[1] = 2; tokens[2] = 3; alphaGang.safeBatchTransferFrom( _owner, address(this), tokens, totalAvailable, "" ); // loop over and update the vault unchecked { for (uint32 i = 1; i < 4; i++) { vault[i][_owner] += totalAvailable[i - 1]; } } emit StakeAll(msg.sender, tokens, totalAvailable); } function _unstakeAll() internal { address _owner = msg.sender; uint256[] memory totalStaked = stakedBalanceOf(_owner); uint256[] memory tokens = new uint256[](3); tokens[0] = 1; tokens[1] = 2; tokens[2] = 3; // loop over and update the vault unchecked { for (uint32 i = 1; i < 4; i++) { vault[i][_owner] -= totalStaked[i - 1]; } } alphaGang.safeBatchTransferFrom( address(this), _owner, tokens, totalStaked, "" ); emit UnstakeAll(_owner, tokens, totalStaked); } /** Views */ function stakedBalanceOf(address account) public view returns (uint256[] memory _tokenBalance) { uint256[] memory tokenBalance = new uint256[](3); unchecked { for (uint32 i = 1; i < 4; i++) { uint256 stakedCount = vault[i][account]; if (stakedCount > 0) { tokenBalance[i - 1] += stakedCount; } } } return tokenBalance; } function unstakedBalanceOf(address account) public view returns (uint256[] memory _tokenBalance) { // This consumes ~4k gas less than batchBalanceOf with address array uint256[] memory totalTokenBalance = new uint256[](3); totalTokenBalance[0] = alphaGang.balanceOf(account, 1); totalTokenBalance[1] = alphaGang.balanceOf(account, 2); totalTokenBalance[2] = alphaGang.balanceOf(account, 3); return totalTokenBalance; } /** * Contract addresses referencing functions in case we make a mistake in constructor setting */ function setAlphaGang(address _alphaGang) external onlyOwner { alphaGang = IAlphaGang(_alphaGang); } function setGangToken(address _gangToken) external onlyOwner { gangToken = IGangToken(_gangToken); } /** * FE Call fns */ function claim() external { _claim(msg.sender); } function claimSoft() external { _claimSoft(msg.sender); } function claimForAddress(address account, bool hardStake) public { if (hardStake) { _claim(account); } else { _claimSoft(account); } } function stakeAll() external { _claim(msg.sender); _claimSoft(msg.sender); _stakeAll(); } function unstakeAll() external { _claim(msg.sender); _claimSoft(msg.sender); _unstakeAll(); } function _claim(address account) internal { uint256 stakedAt = lastClaim[account] >= START ? lastClaim[account] : START; uint256 tokenCount = 0; // bonus of 6.25% is applied for holding all 3 assets(can only be applied once) uint256 triBonusCount = 0; // 300 per week for hard, 75 for soft staked uint256 stakeRate = 496031746031746; uint256[] memory stakedCount = stakedBalanceOf(account); unchecked { for (uint32 i; i < 3; i++) { if (stakedCount[i] > 0) { tokenCount += stakedCount[i]; triBonusCount++; } } } if (tokenCount > 0) { // 35%, 52.5%, 61.25% | Order: 50, Mac, Riri uint256 bonusBase = 350_000; uint256 bonus = 1_000_000; // multiplier of 1 unchecked { // calculate total bonus to be applied, start adding bonus for more hodls for (uint32 j = 1; j < tokenCount; j++) { bonus += bonusBase; bonusBase /= 2; } // triBonus for holding all 3 OGs if (triBonusCount == 3) { bonus += 87_500; } } uint256 timestamp = block.timestamp; // by default we will have 10*18 decimal points for $GANG, take away factor of 1000 we added to the bonus to get 10**15 uint256 earned = ((timestamp - stakedAt) * bonus * stakeRate) / 1_000_000; lastClaim[account] = timestamp; gangToken.mint(account, earned); emit Claim(account, earned, tokenCount, bonus); } } function _claimSoft(address account) internal { uint256 stakedAt = lastSoftClaim[account] >= START ? lastSoftClaim[account] : START; uint256 tokenCount = 0; uint256 stakeRate = 124007936507936; uint256[] memory stakedCount = unstakedBalanceOf(account); unchecked { for (uint32 i; i < 3; i++) { if (stakedCount[i] > 0) { tokenCount += stakedCount[i]; } } } if (tokenCount > 0) { uint256 timestamp = block.timestamp; uint256 earned = ((timestamp - stakedAt) * stakeRate); lastSoftClaim[account] = timestamp; gangToken.mint(account, earned); emit Claim(account, earned, tokenCount, block.timestamp); } } function getSoftPendingRewards(address account) external view returns (uint256 rewards) { uint256 stakedAt = lastSoftClaim[account] >= START ? lastSoftClaim[account] : START; uint256 tokenCount = 0; uint256 stakeRate = 124007936507936; uint256[] memory stakedCount = unstakedBalanceOf(account); unchecked { for (uint32 i; i < 3; i++) { if (stakedCount[i] > 0) { tokenCount += stakedCount[i]; } } } if (tokenCount == 0) { return 0; } uint256 timestamp = block.timestamp; uint256 earned = ((timestamp - stakedAt) * stakeRate); return earned; } function getPendingRewards(address account) external view returns (uint256 rewards) { uint256 stakedAt = lastClaim[account] >= START ? lastClaim[account] : START; uint256 tokenCount = 0; // bonus of 6.25% is applied for holding all 3 assets(can only be applied once) uint256 triBonusCount = 0; uint256 stakeRate = 496031746031746; uint256[] memory stakedCount = stakedBalanceOf(account); unchecked { for (uint32 i; i < 3; i++) { if (stakedCount[i] > 0) { tokenCount += stakedCount[i]; triBonusCount++; } } } if (tokenCount == 0) { return 0; } // 35%, 52.5%, 61.25% | Order: 50, Mac, Riri uint256 bonusBase = 350_000; uint256 bonus = 1_000_000; // multiplier of 1 unchecked { // calculate total bonus to be applied, start adding bonus for more hodls for (uint32 j = 1; j < tokenCount; j++) { bonus += bonusBase; bonusBase /= 2; } // triBonus for holding all 3 OGs if (triBonusCount == 3) { bonus += 87_500; } } uint256 timestamp = block.timestamp; // by default we will have 10*18 decimal points for $GANG, take away factor of 1000 we added to the bonus to get 10**15 uint256 earned = ((timestamp - stakedAt) * bonus * stakeRate) / 1_000_000; return earned; } function setStakeRate(uint256 _newRate, bool isOGRate) external onlyOwner { if (isOGRate) { ogStakeRate = _newRate; } else { softStakeRate = _newRate; } } }
// 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 (last updated v4.5.0) (token/ERC1155/utils/ERC1155Holder.sol) pragma solidity ^0.8.0; import "./ERC1155Receiver.sol"; /** * Simple implementation of `ERC1155Receiver` that will allow a contract to hold ERC1155 tokens. * * IMPORTANT: When inheriting this contract, you must include a way to use the received tokens, otherwise they will be * stuck. * * @dev _Available since v3.1._ */ contract ERC1155Holder is ERC1155Receiver { function onERC1155Received( address, address, uint256, uint256, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] memory, uint256[] memory, bytes memory ) public virtual override returns (bytes4) { return this.onERC1155BatchReceived.selector; } }
// 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 // OpenZeppelin Contracts v4.4.1 (token/ERC1155/utils/ERC1155Receiver.sol) pragma solidity ^0.8.0; import "../IERC1155Receiver.sol"; import "../../../utils/introspection/ERC165.sol"; /** * @dev _Available since v3.1._ */ abstract contract ERC1155Receiver is ERC165, IERC1155Receiver { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev _Available since v3.1._ */ interface IERC1155Receiver is IERC165 { /** * @dev Handles the receipt of a single ERC1155 token type. This function is * called at the end of a `safeTransferFrom` after the balance has been updated. * * NOTE: To accept the transfer, this must return * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` * (i.e. 0xf23a6e61, or its own function selector). * * @param operator The address which initiated the transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param id The ID of the token being transferred * @param value The amount of tokens being transferred * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** * @dev Handles the receipt of a multiple ERC1155 token types. This function * is called at the end of a `safeBatchTransferFrom` after the balances have * been updated. * * NOTE: To accept the transfer(s), this must return * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` * (i.e. 0xbc197c81, or its own function selector). * * @param operator The address which initiated the batch transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param ids An array containing ids of each token being transferred (order and length must match values array) * @param values An array containing amounts of each token being transferred (order and length must match ids array) * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// 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); }
{ "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":"contract IAlphaGang","name":"_nft","type":"address"},{"internalType":"contract IGangToken","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"count","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"multiplier","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"count","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"counts","type":"uint256[]"}],"name":"StakeAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"count","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"counts","type":"uint256[]"}],"name":"UnstakeAll","type":"event"},{"inputs":[],"name":"START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"hardStake","type":"bool"}],"name":"claimForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimSoft","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getPendingRewards","outputs":[{"internalType":"uint256","name":"rewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getSoftPendingRewards","outputs":[{"internalType":"uint256","name":"rewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ogStakeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_alphaGang","type":"address"}],"name":"setAlphaGang","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_gangToken","type":"address"}],"name":"setGangToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newRate","type":"uint256"},{"internalType":"bool","name":"isOGRate","type":"bool"}],"name":"setStakeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"softStakeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"tokenCount","type":"uint256"}],"name":"stakeSingle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"stakedBalanceOf","outputs":[{"internalType":"uint256[]","name":"_tokenBalance","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstakeAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"tokenCount","type":"uint256"}],"name":"unstakeSingle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"unstakedBalanceOf","outputs":[{"internalType":"uint256[]","name":"_tokenBalance","type":"uint256[]"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60a06040526601c323640500826003556570c8d90140206004553480156200002657600080fd5b5060405162001d9d38038062001d9d8339810160408190526200004991620000f3565b62000054336200008a565b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790554260805262000132565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620000f057600080fd5b50565b600080604083850312156200010757600080fd5b82516200011481620000da565b60208401519092506200012781620000da565b809150509250929050565b608051611c1762000186600039600081816102c9015281816105d4015281816105fb01528181610dc001528181610de701528181610f5701528181610f7e015281816111ac01526111d30152611c176000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80634e71d92d116100e3578063ba9a061a1161008c578063f23a6e6111610066578063f23a6e611461034f578063f2fde38b14610387578063f6ed20171461039a57600080fd5b8063ba9a061a146102c4578063bc197c81146102eb578063d11c2d1d1461033c57600080fd5b80638b45a673116100bd5780638b45a6731461028e5780638da5cb5b146102a15780638dcb4061146102bc57600080fd5b80634e71d92d1461026b5780635506e31f14610273578063715018a61461028657600080fd5b8063167653911161014557806335322f371161011f57806335322f371461024857806338a4a89a1461025057806344748a681461025857600080fd5b8063167653911461020c5780631a2266181461022c5780631b5b76541461023f57600080fd5b806307e199c91161017657806307e199c9146101d15780630dc6f369146101e65780630f742ab6146101f957600080fd5b806301bc1b7b1461019257806301ffc9a7146101ae575b600080fd5b61019b60045481565b6040519081526020015b60405180910390f35b6101c16101bc366004611727565b6103ad565b60405190151581526020016101a5565b6101e46101df366004611758565b610416565b005b61019b6101f4366004611796565b6105b7565b6101e46102073660046117c1565b6106f0565b61021f61021a366004611796565b610760565b6040516101a59190611828565b6101e461023a366004611796565b610807565b61019b60035481565b6101e4610890565b6101e46108ac565b6101e4610266366004611796565b6108b5565b6101e461093e565b6101e461028136600461183b565b610947565b6101e461095f565b61021f61029c366004611796565b6109c3565b6000546040516001600160a01b0390911681526020016101a5565b6101e4610ba3565b61019b7f000000000000000000000000000000000000000000000000000000000000000081565b6103236102f936600461199c565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b6040516001600160e01b031990911681526020016101a5565b6101e461034a366004611758565b610bbd565b61032361035d366004611a46565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b6101e4610395366004611796565b610cc1565b61019b6103a8366004611796565b610da3565b60006001600160e01b031982167f4e2312e000000000000000000000000000000000000000000000000000000000148061041057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60008281526005602090815260408083203380855292529091205461043f565b60405180910390fd5b828110156104b55760405162461bcd60e51b815260206004820152603e60248201527f596f7520646f206e6f7420686176652072657175657374656420746f6b656e2060448201527f616d6f756e7420617661696c61626c6520666f7220756e7374616b696e6700006064820152608401610436565b6104c0826001610947565b6104cb826000610947565b60008481526005602090815260408083206001600160a01b0386811680865291909352818420805488900390556001549151637921219560e11b81523060048201526024810191909152604481018890526064810187905260a0608482015260a4810193909352169063f242432a9060c401600060405180830381600087803b15801561055757600080fd5b505af115801561056b573d6000803e3d6000fd5b505060408051338152602081018890529081018690527ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb2809250606001905060405180910390a150505050565b6001600160a01b03811660009081526007602052604081205481907f0000000000000000000000000000000000000000000000000000000000000000111561061f577f0000000000000000000000000000000000000000000000000000000000000000610639565b6001600160a01b0383166000908152600760205260409020545b905060006570c8d90140208161064e866109c3565b905060005b60038163ffffffff1610156106b7576000828263ffffffff168151811061067c5761067c611aab565b602002602001015111156106af57818163ffffffff16815181106106a2576106a2611aab565b6020026020010151840193505b600101610653565b50826000036106cc5750600095945050505050565b426000836106da8784611ad7565b6106e49190611aee565b98975050505050505050565b6000546001600160a01b0316331461074a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b80156107565750600355565b60048290555b5050565b604080516003808252608082019092526060916000919060208201848036833701905050905060015b60048163ffffffff1610156108005763ffffffff811660009081526005602090815260408083206001600160a01b038816845290915290205480156107f75780836001840363ffffffff16815181106107e4576107e4611aab565b6020026020010181815101915081815250505b50600101610789565b5092915050565b6000546001600160a01b031633146108615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61089933610f3c565b6108a233611191565b6108aa611386565b565b6108aa33611191565b6000546001600160a01b0316331461090f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6108aa33610f3c565b80156109565761075c82610f3c565b61075c82611191565b6000546001600160a01b031633146109b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6108aa6000611528565b60408051600380825260808201909252606091600091906020820184803683370190505060018054604051627eeac760e11b81526001600160a01b0387811660048301526024820193909352929350169062fdd58e90604401602060405180830381865afa158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d9190611b0d565b81600081518110610a7057610a70611aab565b6020908102919091010152600154604051627eeac760e11b81526001600160a01b038581166004830152600260248301529091169062fdd58e90604401602060405180830381865afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190611b0d565b81600181518110610b0157610b01611aab565b6020908102919091010152600154604051627eeac760e11b81526001600160a01b038581166004830152600360248301529091169062fdd58e90604401602060405180830381865afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f9190611b0d565b81600281518110610b9257610b92611aab565b602090810291909101015292915050565b610bac33610f3c565b610bb533611191565b6108aa611585565b600154604051637921219560e11b81523360048201819052306024830152604482018590526064820184905260a06084830152600060a4830152916001600160a01b03169063f242432a9060c401600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b50505050610c48816001610947565b610c53816000610947565b60008381526005602090815260408083206001600160a01b03851680855290835292819020805486019055805192835290820185905281018390527f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b6906060015b60405180910390a1505050565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6001600160a01b038116610d975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610436565b610da081611528565b50565b6001600160a01b03811660009081526006602052604081205481907f00000000000000000000000000000000000000000000000000000000000000001115610e0b577f0000000000000000000000000000000000000000000000000000000000000000610e25565b6001600160a01b0383166000908152600660205260409020545b90506000806601c3236405008281610e3c87610760565b905060005b60038163ffffffff161015610ead576000828263ffffffff1681518110610e6a57610e6a611aab565b60200260200101511115610ea557818163ffffffff1681518110610e9057610e90611aab565b60200260200101518501945083806001019450505b600101610e41565b5083600003610ec3575060009695505050505050565b62055730620f424060015b868163ffffffff161015610eed57600283049290910190600101610ece565b5084600303610efc57620155cc015b426000620f42408684610f0f8c86611ad7565b610f199190611aee565b610f239190611aee565b610f2d9190611b26565b9b9a5050505050505050505050565b6001600160a01b0381166000908152600660205260408120547f00000000000000000000000000000000000000000000000000000000000000001115610fa2577f0000000000000000000000000000000000000000000000000000000000000000610fbc565b6001600160a01b0382166000908152600660205260409020545b90506000806601c3236405008281610fd386610760565b905060005b60038163ffffffff161015611044576000828263ffffffff168151811061100157611001611aab565b6020026020010151111561103c57818163ffffffff168151811061102757611027611aab565b60200260200101518501945083806001019450505b600101610fd8565b5083156111895762055730620f424060015b868163ffffffff16101561107557600283049290910190600101611056565b508460030361108457620155cc015b426000620f424086846110978c86611ad7565b6110a19190611aee565b6110ab9190611aee565b6110b59190611b26565b6001600160a01b038b81166000818152600660205260409081902086905560025490516340c10f1960e01b81526004810192909252602482018490529293509116906340c10f1990604401600060405180830381600087803b15801561111a57600080fd5b505af115801561112e573d6000803e3d6000fd5b5050604080516001600160a01b038e168152602081018590529081018b9052606081018690527f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19250608001905060405180910390a1505050505b505050505050565b6001600160a01b0381166000908152600760205260408120547f000000000000000000000000000000000000000000000000000000000000000011156111f7577f0000000000000000000000000000000000000000000000000000000000000000611211565b6001600160a01b0382166000908152600760205260409020545b905060006570c8d901402081611226856109c3565b905060005b60038163ffffffff16101561128f576000828263ffffffff168151811061125457611254611aab565b6020026020010151111561128757818163ffffffff168151811061127a5761127a611aab565b6020026020010151840193505b60010161122b565b50821561137f57426000836112a48784611ad7565b6112ae9190611aee565b6001600160a01b038881166000818152600760205260409081902086905560025490516340c10f1960e01b81526004810192909252602482018490529293509116906340c10f1990604401600060405180830381600087803b15801561131357600080fd5b505af1158015611327573d6000803e3d6000fd5b5050604080516001600160a01b038b168152602081018590529081018890524260608201527f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19250608001905060405180910390a150505b5050505050565b33600061139282610760565b6040805160038082526080820190925291925060009190602082016060803683370190505090506001816000815181106113ce576113ce611aab565b6020026020010181815250506002816001815181106113ef576113ef611aab565b60200260200101818152505060038160028151811061141057611410611aab565b602090810291909101015260015b60048163ffffffff16101561148c57826001820363ffffffff168151811061144857611448611aab565b60209081029190910181015163ffffffff831660009081526005835260408082206001600160a01b038916835290935291909120805491909103905560010161141e565b50600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d6906114c3903090879086908890600401611b48565b600060405180830381600087803b1580156114dd57600080fd5b505af11580156114f1573d6000803e3d6000fd5b505050507fb6455975300df906cdcedc5693a6fdf4e9715a5958f1925ecdb2911f499929ef838284604051610cb493929190611ba3565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b336000611591826109c3565b6040805160038082526080820190925291925060009190602082016060803683370190505090506001816000815181106115cd576115cd611aab565b6020026020010181815250506002816001815181106115ee576115ee611aab565b60200260200101818152505060038160028151811061160f5761160f611aab565b6020908102919091010152600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d690611650908690309086908890600401611b48565b600060405180830381600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b506001925050505b60048163ffffffff1610156116f357826001820363ffffffff16815181106116b0576116b0611aab565b60209081029190910181015163ffffffff831660009081526005835260408082206001600160a01b03891683529093529190912080549091019055600101611686565b507f3da322b830516db852a10bf39cc3c9e8db567a0b5c9be303d8d4917e909065a6338284604051610cb493929190611ba3565b60006020828403121561173957600080fd5b81356001600160e01b03198116811461175157600080fd5b9392505050565b6000806040838503121561176b57600080fd5b50508035926020909101359150565b80356001600160a01b038116811461179157600080fd5b919050565b6000602082840312156117a857600080fd5b6117518261177a565b8035801515811461179157600080fd5b600080604083850312156117d457600080fd5b823591506117e4602084016117b1565b90509250929050565b600081518084526020808501945080840160005b8381101561181d57815187529582019590820190600101611801565b509495945050505050565b60208152600061175160208301846117ed565b6000806040838503121561184e57600080fd5b6118578361177a565b91506117e4602084016117b1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156118a4576118a4611865565b604052919050565b600082601f8301126118bd57600080fd5b8135602067ffffffffffffffff8211156118d9576118d9611865565b8160051b6118e882820161187b565b928352848101820192828101908785111561190257600080fd5b83870192505b8483101561192157823582529183019190830190611908565b979650505050505050565b600082601f83011261193d57600080fd5b813567ffffffffffffffff81111561195757611957611865565b61196a601f8201601f191660200161187b565b81815284602083860101111561197f57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156119b457600080fd5b6119bd8661177a565b94506119cb6020870161177a565b9350604086013567ffffffffffffffff808211156119e857600080fd5b6119f489838a016118ac565b94506060880135915080821115611a0a57600080fd5b611a1689838a016118ac565b93506080880135915080821115611a2c57600080fd5b50611a398882890161192c565b9150509295509295909350565b600080600080600060a08688031215611a5e57600080fd5b611a678661177a565b9450611a756020870161177a565b93506040860135925060608601359150608086013567ffffffffffffffff811115611a9f57600080fd5b611a398882890161192c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015611ae957611ae9611ac1565b500390565b6000816000190483118215151615611b0857611b08611ac1565b500290565b600060208284031215611b1f57600080fd5b5051919050565b600082611b4357634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160a01b03808716835280861660208401525060a06040830152611b7460a08301856117ed565b8281036060840152611b8681856117ed565b838103608090940193909352505060008152602001949350505050565b6001600160a01b0384168152606060208201526000611bc560608301856117ed565b8281036040840152611bd781856117ed565b969550505050505056fea2646970667358221220ec9b00f1c3007ba434f1c8f94e59880d731f7f1b0d371a8c77090d71768198db64736f6c634300080d0033000000000000000000000000595a70409711f20523bd99b83d088cea9d3f92e10000000000000000000000003321551494954f2bd682d2614495e365e9dffb2f
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061018d5760003560e01c80634e71d92d116100e3578063ba9a061a1161008c578063f23a6e6111610066578063f23a6e611461034f578063f2fde38b14610387578063f6ed20171461039a57600080fd5b8063ba9a061a146102c4578063bc197c81146102eb578063d11c2d1d1461033c57600080fd5b80638b45a673116100bd5780638b45a6731461028e5780638da5cb5b146102a15780638dcb4061146102bc57600080fd5b80634e71d92d1461026b5780635506e31f14610273578063715018a61461028657600080fd5b8063167653911161014557806335322f371161011f57806335322f371461024857806338a4a89a1461025057806344748a681461025857600080fd5b8063167653911461020c5780631a2266181461022c5780631b5b76541461023f57600080fd5b806307e199c91161017657806307e199c9146101d15780630dc6f369146101e65780630f742ab6146101f957600080fd5b806301bc1b7b1461019257806301ffc9a7146101ae575b600080fd5b61019b60045481565b6040519081526020015b60405180910390f35b6101c16101bc366004611727565b6103ad565b60405190151581526020016101a5565b6101e46101df366004611758565b610416565b005b61019b6101f4366004611796565b6105b7565b6101e46102073660046117c1565b6106f0565b61021f61021a366004611796565b610760565b6040516101a59190611828565b6101e461023a366004611796565b610807565b61019b60035481565b6101e4610890565b6101e46108ac565b6101e4610266366004611796565b6108b5565b6101e461093e565b6101e461028136600461183b565b610947565b6101e461095f565b61021f61029c366004611796565b6109c3565b6000546040516001600160a01b0390911681526020016101a5565b6101e4610ba3565b61019b7f000000000000000000000000000000000000000000000000000000006270c0da81565b6103236102f936600461199c565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b6040516001600160e01b031990911681526020016101a5565b6101e461034a366004611758565b610bbd565b61032361035d366004611a46565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b6101e4610395366004611796565b610cc1565b61019b6103a8366004611796565b610da3565b60006001600160e01b031982167f4e2312e000000000000000000000000000000000000000000000000000000000148061041057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60008281526005602090815260408083203380855292529091205461043f565b60405180910390fd5b828110156104b55760405162461bcd60e51b815260206004820152603e60248201527f596f7520646f206e6f7420686176652072657175657374656420746f6b656e2060448201527f616d6f756e7420617661696c61626c6520666f7220756e7374616b696e6700006064820152608401610436565b6104c0826001610947565b6104cb826000610947565b60008481526005602090815260408083206001600160a01b0386811680865291909352818420805488900390556001549151637921219560e11b81523060048201526024810191909152604481018890526064810187905260a0608482015260a4810193909352169063f242432a9060c401600060405180830381600087803b15801561055757600080fd5b505af115801561056b573d6000803e3d6000fd5b505060408051338152602081018890529081018690527ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb2809250606001905060405180910390a150505050565b6001600160a01b03811660009081526007602052604081205481907f000000000000000000000000000000000000000000000000000000006270c0da111561061f577f000000000000000000000000000000000000000000000000000000006270c0da610639565b6001600160a01b0383166000908152600760205260409020545b905060006570c8d90140208161064e866109c3565b905060005b60038163ffffffff1610156106b7576000828263ffffffff168151811061067c5761067c611aab565b602002602001015111156106af57818163ffffffff16815181106106a2576106a2611aab565b6020026020010151840193505b600101610653565b50826000036106cc5750600095945050505050565b426000836106da8784611ad7565b6106e49190611aee565b98975050505050505050565b6000546001600160a01b0316331461074a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b80156107565750600355565b60048290555b5050565b604080516003808252608082019092526060916000919060208201848036833701905050905060015b60048163ffffffff1610156108005763ffffffff811660009081526005602090815260408083206001600160a01b038816845290915290205480156107f75780836001840363ffffffff16815181106107e4576107e4611aab565b6020026020010181815101915081815250505b50600101610789565b5092915050565b6000546001600160a01b031633146108615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61089933610f3c565b6108a233611191565b6108aa611386565b565b6108aa33611191565b6000546001600160a01b0316331461090f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6108aa33610f3c565b80156109565761075c82610f3c565b61075c82611191565b6000546001600160a01b031633146109b95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6108aa6000611528565b60408051600380825260808201909252606091600091906020820184803683370190505060018054604051627eeac760e11b81526001600160a01b0387811660048301526024820193909352929350169062fdd58e90604401602060405180830381865afa158015610a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5d9190611b0d565b81600081518110610a7057610a70611aab565b6020908102919091010152600154604051627eeac760e11b81526001600160a01b038581166004830152600260248301529091169062fdd58e90604401602060405180830381865afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aee9190611b0d565b81600181518110610b0157610b01611aab565b6020908102919091010152600154604051627eeac760e11b81526001600160a01b038581166004830152600360248301529091169062fdd58e90604401602060405180830381865afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f9190611b0d565b81600281518110610b9257610b92611aab565b602090810291909101015292915050565b610bac33610f3c565b610bb533611191565b6108aa611585565b600154604051637921219560e11b81523360048201819052306024830152604482018590526064820184905260a06084830152600060a4830152916001600160a01b03169063f242432a9060c401600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b50505050610c48816001610947565b610c53816000610947565b60008381526005602090815260408083206001600160a01b03851680855290835292819020805486019055805192835290820185905281018390527f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b6906060015b60405180910390a1505050565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610436565b6001600160a01b038116610d975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610436565b610da081611528565b50565b6001600160a01b03811660009081526006602052604081205481907f000000000000000000000000000000000000000000000000000000006270c0da1115610e0b577f000000000000000000000000000000000000000000000000000000006270c0da610e25565b6001600160a01b0383166000908152600660205260409020545b90506000806601c3236405008281610e3c87610760565b905060005b60038163ffffffff161015610ead576000828263ffffffff1681518110610e6a57610e6a611aab565b60200260200101511115610ea557818163ffffffff1681518110610e9057610e90611aab565b60200260200101518501945083806001019450505b600101610e41565b5083600003610ec3575060009695505050505050565b62055730620f424060015b868163ffffffff161015610eed57600283049290910190600101610ece565b5084600303610efc57620155cc015b426000620f42408684610f0f8c86611ad7565b610f199190611aee565b610f239190611aee565b610f2d9190611b26565b9b9a5050505050505050505050565b6001600160a01b0381166000908152600660205260408120547f000000000000000000000000000000000000000000000000000000006270c0da1115610fa2577f000000000000000000000000000000000000000000000000000000006270c0da610fbc565b6001600160a01b0382166000908152600660205260409020545b90506000806601c3236405008281610fd386610760565b905060005b60038163ffffffff161015611044576000828263ffffffff168151811061100157611001611aab565b6020026020010151111561103c57818163ffffffff168151811061102757611027611aab565b60200260200101518501945083806001019450505b600101610fd8565b5083156111895762055730620f424060015b868163ffffffff16101561107557600283049290910190600101611056565b508460030361108457620155cc015b426000620f424086846110978c86611ad7565b6110a19190611aee565b6110ab9190611aee565b6110b59190611b26565b6001600160a01b038b81166000818152600660205260409081902086905560025490516340c10f1960e01b81526004810192909252602482018490529293509116906340c10f1990604401600060405180830381600087803b15801561111a57600080fd5b505af115801561112e573d6000803e3d6000fd5b5050604080516001600160a01b038e168152602081018590529081018b9052606081018690527f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19250608001905060405180910390a1505050505b505050505050565b6001600160a01b0381166000908152600760205260408120547f000000000000000000000000000000000000000000000000000000006270c0da11156111f7577f000000000000000000000000000000000000000000000000000000006270c0da611211565b6001600160a01b0382166000908152600760205260409020545b905060006570c8d901402081611226856109c3565b905060005b60038163ffffffff16101561128f576000828263ffffffff168151811061125457611254611aab565b6020026020010151111561128757818163ffffffff168151811061127a5761127a611aab565b6020026020010151840193505b60010161122b565b50821561137f57426000836112a48784611ad7565b6112ae9190611aee565b6001600160a01b038881166000818152600760205260409081902086905560025490516340c10f1960e01b81526004810192909252602482018490529293509116906340c10f1990604401600060405180830381600087803b15801561131357600080fd5b505af1158015611327573d6000803e3d6000fd5b5050604080516001600160a01b038b168152602081018590529081018890524260608201527f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19250608001905060405180910390a150505b5050505050565b33600061139282610760565b6040805160038082526080820190925291925060009190602082016060803683370190505090506001816000815181106113ce576113ce611aab565b6020026020010181815250506002816001815181106113ef576113ef611aab565b60200260200101818152505060038160028151811061141057611410611aab565b602090810291909101015260015b60048163ffffffff16101561148c57826001820363ffffffff168151811061144857611448611aab565b60209081029190910181015163ffffffff831660009081526005835260408082206001600160a01b038916835290935291909120805491909103905560010161141e565b50600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d6906114c3903090879086908890600401611b48565b600060405180830381600087803b1580156114dd57600080fd5b505af11580156114f1573d6000803e3d6000fd5b505050507fb6455975300df906cdcedc5693a6fdf4e9715a5958f1925ecdb2911f499929ef838284604051610cb493929190611ba3565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b336000611591826109c3565b6040805160038082526080820190925291925060009190602082016060803683370190505090506001816000815181106115cd576115cd611aab565b6020026020010181815250506002816001815181106115ee576115ee611aab565b60200260200101818152505060038160028151811061160f5761160f611aab565b6020908102919091010152600154604051631759616b60e11b81526001600160a01b0390911690632eb2c2d690611650908690309086908890600401611b48565b600060405180830381600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b506001925050505b60048163ffffffff1610156116f357826001820363ffffffff16815181106116b0576116b0611aab565b60209081029190910181015163ffffffff831660009081526005835260408082206001600160a01b03891683529093529190912080549091019055600101611686565b507f3da322b830516db852a10bf39cc3c9e8db567a0b5c9be303d8d4917e909065a6338284604051610cb493929190611ba3565b60006020828403121561173957600080fd5b81356001600160e01b03198116811461175157600080fd5b9392505050565b6000806040838503121561176b57600080fd5b50508035926020909101359150565b80356001600160a01b038116811461179157600080fd5b919050565b6000602082840312156117a857600080fd5b6117518261177a565b8035801515811461179157600080fd5b600080604083850312156117d457600080fd5b823591506117e4602084016117b1565b90509250929050565b600081518084526020808501945080840160005b8381101561181d57815187529582019590820190600101611801565b509495945050505050565b60208152600061175160208301846117ed565b6000806040838503121561184e57600080fd5b6118578361177a565b91506117e4602084016117b1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156118a4576118a4611865565b604052919050565b600082601f8301126118bd57600080fd5b8135602067ffffffffffffffff8211156118d9576118d9611865565b8160051b6118e882820161187b565b928352848101820192828101908785111561190257600080fd5b83870192505b8483101561192157823582529183019190830190611908565b979650505050505050565b600082601f83011261193d57600080fd5b813567ffffffffffffffff81111561195757611957611865565b61196a601f8201601f191660200161187b565b81815284602083860101111561197f57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a086880312156119b457600080fd5b6119bd8661177a565b94506119cb6020870161177a565b9350604086013567ffffffffffffffff808211156119e857600080fd5b6119f489838a016118ac565b94506060880135915080821115611a0a57600080fd5b611a1689838a016118ac565b93506080880135915080821115611a2c57600080fd5b50611a398882890161192c565b9150509295509295909350565b600080600080600060a08688031215611a5e57600080fd5b611a678661177a565b9450611a756020870161177a565b93506040860135925060608601359150608086013567ffffffffffffffff811115611a9f57600080fd5b611a398882890161192c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015611ae957611ae9611ac1565b500390565b6000816000190483118215151615611b0857611b08611ac1565b500290565b600060208284031215611b1f57600080fd5b5051919050565b600082611b4357634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160a01b03808716835280861660208401525060a06040830152611b7460a08301856117ed565b8281036060840152611b8681856117ed565b838103608090940193909352505060008152602001949350505050565b6001600160a01b0384168152606060208201526000611bc560608301856117ed565b8281036040840152611bd781856117ed565b969550505050505056fea2646970667358221220ec9b00f1c3007ba434f1c8f94e59880d731f7f1b0d371a8c77090d71768198db64736f6c634300080d0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000595a70409711f20523bd99b83d088cea9d3f92e10000000000000000000000003321551494954f2bd682d2614495e365e9dffb2f
-----Decoded View---------------
Arg [0] : _nft (address): 0x595a70409711F20523BD99b83D088CeA9d3f92e1
Arg [1] : _token (address): 0x3321551494954f2BD682D2614495E365e9DFfb2F
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000595a70409711f20523bd99b83d088cea9d3f92e1
Arg [1] : 0000000000000000000000003321551494954f2bd682d2614495e365e9dffb2f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.