More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 416 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Deposit | 17465480 | 404 days ago | IN | 0 ETH | 0.00271989 | ||||
Withdraw | 16620758 | 523 days ago | IN | 0 ETH | 0.00647178 | ||||
Claim | 16620757 | 523 days ago | IN | 0 ETH | 0.00356489 | ||||
Withdraw | 16610773 | 525 days ago | IN | 0 ETH | 0.00602762 | ||||
Withdraw | 16421095 | 551 days ago | IN | 0 ETH | 0.00451345 | ||||
Claim | 16376255 | 557 days ago | IN | 0 ETH | 0.00093036 | ||||
Withdraw | 16349008 | 561 days ago | IN | 0 ETH | 0.00292258 | ||||
Withdraw | 16296755 | 568 days ago | IN | 0 ETH | 0.00673048 | ||||
Withdraw | 16233987 | 577 days ago | IN | 0 ETH | 0.00253671 | ||||
Claim | 16180707 | 585 days ago | IN | 0 ETH | 0.00368116 | ||||
Claim | 16103398 | 595 days ago | IN | 0 ETH | 0.00118807 | ||||
Claim | 16066571 | 601 days ago | IN | 0 ETH | 0.00086059 | ||||
Deposit | 16066569 | 601 days ago | IN | 0 ETH | 0.00327477 | ||||
Claim | 16064186 | 601 days ago | IN | 0 ETH | 0.00059628 | ||||
Claim | 16064184 | 601 days ago | IN | 0 ETH | 0.00064294 | ||||
Withdraw | 16064182 | 601 days ago | IN | 0 ETH | 0.00190852 | ||||
Claim | 16056426 | 602 days ago | IN | 0 ETH | 0.00102277 | ||||
Withdraw | 15882139 | 626 days ago | IN | 0 ETH | 0.00255102 | ||||
Deposit | 15871674 | 628 days ago | IN | 0 ETH | 0.00347131 | ||||
Claim | 15759315 | 643 days ago | IN | 0 ETH | 0.00249907 | ||||
Withdraw | 15647928 | 659 days ago | IN | 0 ETH | 0.00331842 | ||||
Withdraw | 15589147 | 667 days ago | IN | 0 ETH | 0.00113353 | ||||
Claim | 15516501 | 678 days ago | IN | 0 ETH | 0.00110088 | ||||
Withdraw | 15500329 | 681 days ago | IN | 0 ETH | 0.00202509 | ||||
Claim | 15500320 | 681 days ago | IN | 0 ETH | 0.00133088 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Staking
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 512 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.11; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol"; contract Staking is Ownable, Pausable { using EnumerableSet for EnumerableSet.UintSet; uint256 public constant SECONDS_IN_DAY = 24 * 60 * 60; uint256 internal _rate; uint256[] internal _tiers; uint256[] internal _accelerators; address public erc20Address; address public erc721Address; mapping(address => EnumerableSet.UintSet) internal _depositedIds; mapping(address => mapping(uint256 => uint256)) internal _depositedAt; constructor(address _erc721Address, address _erc20Address) { _pause(); erc20Address = _erc20Address; erc721Address = _erc721Address; _rate = 1 * 10**18; _tiers = [0, 10, 20, 50, 77]; _accelerators = [0, 5, 12, 28, 45]; } function deposit(uint256[] calldata tokenIds) external whenNotPaused { for (uint256 i; i < tokenIds.length; i++) { _depositedIds[msg.sender].add(tokenIds[i]); _depositedAt[msg.sender][tokenIds[i]] = block.timestamp; IERC721(erc721Address).transferFrom(msg.sender, address(this), tokenIds[i]); } } function withdraw(uint256[] calldata tokenIds) external whenNotPaused { uint256 totalRewards; uint256 accelerator = _accelerator(_depositedIds[msg.sender].length()); for (uint256 i; i < tokenIds.length; i++) { require(_depositedIds[msg.sender].contains(tokenIds[i]), "not owner"); totalRewards += _earned(_depositedAt[msg.sender][tokenIds[i]], accelerator); _depositedIds[msg.sender].remove(tokenIds[i]); delete _depositedAt[msg.sender][tokenIds[i]]; IERC721(erc721Address).safeTransferFrom(address(this), msg.sender, tokenIds[i]); } IERC20(erc20Address).mint(msg.sender, totalRewards); } function claim() external whenNotPaused { uint256 totalRewards; uint256 length = _depositedIds[msg.sender].length(); uint256 accelerator = _accelerator(length); for (uint256 i; i < length; i++) { uint256 tokenId = _depositedIds[msg.sender].at(i); totalRewards += _earned(_depositedAt[msg.sender][tokenId], accelerator); _depositedAt[msg.sender][tokenId] = block.timestamp; } IERC20(erc20Address).mint(msg.sender, totalRewards); } function _accelerator(uint256 tokens) internal view returns (uint256) { uint256 tierIndex; for (uint256 i; i < _tiers.length; i++) if (tokens >= _tiers[i]) tierIndex = i; return _accelerators[tierIndex]; } function _earned(uint256 timestamp, uint256 accelerator) internal view returns (uint256) { if (timestamp == 0) return 0; return ((block.timestamp - timestamp) * (_rate + ((_rate / 100) * accelerator))) / SECONDS_IN_DAY; } function depositsOf(address wallet) external view returns (uint256[] memory) { uint256 length = _depositedIds[wallet].length(); uint256[] memory ids = new uint256[](length); for (uint256 i; i < length; i++) ids[i] = _depositedIds[wallet].at(i); return ids; } function depositedAt(address wallet, uint256 tokenId) external view returns (uint256) { return _depositedAt[wallet][tokenId]; } function tier(uint256 tokensAmount) external view returns (uint256) { uint256 tierIndex; for (uint256 i; i < _tiers.length; i++) if (tokensAmount >= _tiers[i]) tierIndex = i; return tierIndex; } function rewardsOf(address wallet) external view returns (uint256[] memory) { uint256 length = _depositedIds[wallet].length(); uint256 accelerator = _accelerator(length); uint256[] memory rewards = new uint256[](length); for (uint256 i; i < length; i++) { uint256 tokenId = _depositedIds[wallet].at(i); rewards[i] = _earned(_depositedAt[wallet][tokenId], accelerator); } return rewards; } function pause() public onlyOwner { _pause(); } function unpause() external onlyOwner { _unpause(); } function rate() external view returns (uint256) { return _rate; } function setRate(uint256 newRate) external onlyOwner { _rate = newRate * 10**18; } function tiers() external view returns (uint256[] memory) { return _tiers; } function accelerators() external view returns (uint256[] memory) { return _accelerators; } function setERC20Contract(address _erc20Address) external onlyOwner { erc20Address = _erc20Address; } function setERC721Contract(address _erc721Address) external onlyOwner { erc721Address = _erc721Address; } function setTiers(uint256[] memory newTiers, uint256[] memory newAccelerators) external onlyOwner { require(newTiers.length == newAccelerators.length, "different length"); _tiers = newTiers; _accelerators = newAccelerators; } function emergencyWithdrawERC721Tokens(uint256[] calldata tokens, address receiver) external onlyOwner { for (uint256 i; i < tokens.length; i++) { if (IERC721(erc721Address).ownerOf(tokens[i]) == address(this)) { IERC721(erc721Address).transferFrom(address(this), receiver, tokens[i]); } } } } interface IERC721 { function transferFrom( address from, address to, uint256 id ) external; function safeTransferFrom( address from, address to, uint256 id ) external; function ownerOf(uint256 tokenId) external view returns (address owner); } interface IERC20 { function mint(address to, uint256 amount) external; }
// 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 (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 (utils/structs/EnumerableSet.sol) pragma solidity ^0.8.0; /** * @dev Library for managing * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive * types. * * Sets have the following properties: * * - Elements are added, removed, and checked for existence in constant time * (O(1)). * - Elements are enumerated in O(n). No guarantees are made on the ordering. * * ``` * contract Example { * // Add the library methods * using EnumerableSet for EnumerableSet.AddressSet; * * // Declare a set state variable * EnumerableSet.AddressSet private mySet; * } * ``` * * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) * and `uint256` (`UintSet`) are supported. */ library EnumerableSet { // To implement this library for multiple types with as little code // repetition as possible, we write it in terms of a generic Set type with // bytes32 values. // The Set implementation uses private functions, and user-facing // implementations (such as AddressSet) are just wrappers around the // underlying Set. // This means that we can only create new EnumerableSets for types that fit // in bytes32. struct Set { // Storage of set values bytes32[] _values; // Position of the value in the `values` array, plus 1 because index 0 // means a value is not in the set. mapping(bytes32 => uint256) _indexes; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function _add(Set storage set, bytes32 value) private returns (bool) { if (!_contains(set, value)) { set._values.push(value); // The value is stored at length-1, but we add 1 to all indexes // and use 0 as a sentinel value set._indexes[value] = set._values.length; return true; } else { return false; } } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function _remove(Set storage set, bytes32 value) private returns (bool) { // We read and store the value's index to prevent multiple reads from the same storage slot uint256 valueIndex = set._indexes[value]; if (valueIndex != 0) { // Equivalent to contains(set, value) // To delete an element from the _values array in O(1), we swap the element to delete with the last one in // the array, and then remove the last element (sometimes called as 'swap and pop'). // This modifies the order of the array, as noted in {at}. uint256 toDeleteIndex = valueIndex - 1; uint256 lastIndex = set._values.length - 1; if (lastIndex != toDeleteIndex) { bytes32 lastvalue = set._values[lastIndex]; // Move the last value to the index where the value to delete is set._values[toDeleteIndex] = lastvalue; // Update the index for the moved value set._indexes[lastvalue] = valueIndex; // Replace lastvalue's index to valueIndex } // Delete the slot where the moved value was stored set._values.pop(); // Delete the index for the deleted slot delete set._indexes[value]; return true; } else { return false; } } /** * @dev Returns true if the value is in the set. O(1). */ function _contains(Set storage set, bytes32 value) private view returns (bool) { return set._indexes[value] != 0; } /** * @dev Returns the number of values on the set. O(1). */ function _length(Set storage set) private view returns (uint256) { return set._values.length; } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function _at(Set storage set, uint256 index) private view returns (bytes32) { return set._values[index]; } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function _values(Set storage set) private view returns (bytes32[] memory) { return set._values; } // Bytes32Set struct Bytes32Set { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _add(set._inner, value); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { return _remove(set._inner, value); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { return _contains(set._inner, value); } /** * @dev Returns the number of values in the set. O(1). */ function length(Bytes32Set storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { return _at(set._inner, index); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(Bytes32Set storage set) internal view returns (bytes32[] memory) { return _values(set._inner); } // AddressSet struct AddressSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(AddressSet storage set, address value) internal returns (bool) { return _add(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(AddressSet storage set, address value) internal returns (bool) { return _remove(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(AddressSet storage set, address value) internal view returns (bool) { return _contains(set._inner, bytes32(uint256(uint160(value)))); } /** * @dev Returns the number of values in the set. O(1). */ function length(AddressSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(AddressSet storage set, uint256 index) internal view returns (address) { return address(uint160(uint256(_at(set._inner, index)))); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(AddressSet storage set) internal view returns (address[] memory) { bytes32[] memory store = _values(set._inner); address[] memory result; assembly { result := store } return result; } // UintSet struct UintSet { Set _inner; } /** * @dev Add a value to a set. O(1). * * Returns true if the value was added to the set, that is if it was not * already present. */ function add(UintSet storage set, uint256 value) internal returns (bool) { return _add(set._inner, bytes32(value)); } /** * @dev Removes a value from a set. O(1). * * Returns true if the value was removed from the set, that is if it was * present. */ function remove(UintSet storage set, uint256 value) internal returns (bool) { return _remove(set._inner, bytes32(value)); } /** * @dev Returns true if the value is in the set. O(1). */ function contains(UintSet storage set, uint256 value) internal view returns (bool) { return _contains(set._inner, bytes32(value)); } /** * @dev Returns the number of values on the set. O(1). */ function length(UintSet storage set) internal view returns (uint256) { return _length(set._inner); } /** * @dev Returns the value stored at position `index` in the set. O(1). * * Note that there are no guarantees on the ordering of values inside the * array, and it may change when more values are added or removed. * * Requirements: * * - `index` must be strictly less than {length}. */ function at(UintSet storage set, uint256 index) internal view returns (uint256) { return uint256(_at(set._inner, index)); } /** * @dev Return the entire set in an array * * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that * this function has an unbounded cost, and using it as part of a state-changing function may render the function * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block. */ function values(UintSet storage set) internal view returns (uint256[] memory) { bytes32[] memory store = _values(set._inner); uint256[] memory result; assembly { result := store } return result; } }
// 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": 512 }, "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":"_erc721Address","type":"address"},{"internalType":"address","name":"_erc20Address","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":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"SECONDS_IN_DAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accelerators","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"depositedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"depositsOf","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"},{"internalType":"address","name":"receiver","type":"address"}],"name":"emergencyWithdrawERC721Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"erc20Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"erc721Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"rewardsOf","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_erc20Address","type":"address"}],"name":"setERC20Contract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_erc721Address","type":"address"}],"name":"setERC721Contract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"newTiers","type":"uint256[]"},{"internalType":"uint256[]","name":"newAccelerators","type":"uint256[]"}],"name":"setTiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokensAmount","type":"uint256"}],"name":"tier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tiers","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":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001c7438038062001c7483398101604081905262000034916200029f565b6200003f3362000114565b6000805460ff60a01b191690556200005662000164565b600480546001600160a01b038084166001600160a01b0319928316179092556005805492851692909116919091178155670de0b6b3a76400006001556040805160a08101825260008152600a602082015260149181019190915260326060820152604d6080820152620000cd916002919062000216565b506040805160a08101825260008152600560208201819052600c92820192909252601c6060820152602d60808201526200010b916003919062000216565b505050620002d7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b62000178600054600160a01b900460ff1690565b15620001bd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640160405180910390fd5b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620001f93390565b6040516001600160a01b03909116815260200160405180910390a1565b82805482825590600052602060002090810192821562000259579160200282015b8281111562000259578251829060ff1690559160200191906001019062000237565b50620002679291506200026b565b5090565b5b808211156200026757600081556001016200026c565b80516001600160a01b03811681146200029a57600080fd5b919050565b60008060408385031215620002b357600080fd5b620002be8362000282565b9150620002ce6020840162000282565b90509250929050565b61198d80620002e76000396000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80635c975abb116100e3578063983d95ce1161008c578063cac8d53811610066578063cac8d53814610318578063e3a9db1a1461032b578063f2fde38b1461033e57600080fd5b8063983d95ce146102ea57806399e9b8eb146102fd578063b9c7c95f1461031057600080fd5b8063715018a6116100bd578063715018a6146102c95780638456cb59146102d15780638da5cb5b146102d957600080fd5b80635c975abb1461028f57806361a52a36146102ac5780636dda34db146102b657600080fd5b806334fcf437116101455780634a95d9d51161011f5780634a95d9d51461026c5780634e71d92d14610274578063598b8e711461027c57600080fd5b806334fcf437146102315780633f4ba83a14610244578063479ba7ae1461024c57600080fd5b80632352a864116101765780632352a864146101eb578063276184ae146102165780632c4e722e1461022957600080fd5b806307e0e6bc1461019d5780631b8ebc3c146101b2578063203b3b2b146101c5575b600080fd5b6101b06101ab3660046115f9565b610351565b005b6101b06101c0366004611701565b6104f0565b6101d86101d3366004611765565b6105b5565b6040519081526020015b60405180910390f35b6005546101fe906001600160a01b031681565b6040516001600160a01b0390911681526020016101e2565b6004546101fe906001600160a01b031681565b6001546101d8565b6101b061023f366004611791565b6105e0565b6101b0610640565b61025f61025a3660046117aa565b610692565b6040516101e291906117c7565b61025f6107a4565b6101b06107fc565b6101b061028a36600461180b565b610966565b600054600160a01b900460ff1660405190151581526020016101e2565b6101d86201518081565b6101d86102c4366004611791565b610ad6565b6101b0610b27565b6101b0610b79565b6000546001600160a01b03166101fe565b6101b06102f836600461180b565b610bc9565b6101b061030b3660046117aa565b610e83565b61025f610eed565b6101b06103263660046117aa565b610f43565b61025f6103393660046117aa565b610fad565b6101b061034c3660046117aa565b61107f565b6000546001600160a01b0316331461039e5760405162461bcd60e51b8152602060048201819052602482015260008051602061193883398151915260448201526064015b60405180910390fd5b60005b828110156104ea5760055430906001600160a01b0316636352211e8686858181106103ce576103ce61184d565b905060200201356040518263ffffffff1660e01b81526004016103f391815260200190565b602060405180830381865afa158015610410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104349190611863565b6001600160a01b031614156104d8576005546001600160a01b03166323b872dd30848787868181106104685761046861184d565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156104bf57600080fd5b505af11580156104d3573d6000803e3d6000fd5b505050505b806104e281611896565b9150506103a1565b50505050565b6000546001600160a01b031633146105385760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b80518251146105895760405162461bcd60e51b815260206004820152601060248201527f646966666572656e74206c656e677468000000000000000000000000000000006044820152606401610395565b815161059c906002906020850190611538565b5080516105b0906003906020840190611538565b505050565b6001600160a01b03821660009081526007602090815260408083208484529091529020545b92915050565b6000546001600160a01b031633146106285760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b61063a81670de0b6b3a76400006118b1565b60015550565b6000546001600160a01b031633146106885760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b610690611138565b565b6001600160a01b0381166000908152600660205260408120606091906106b7906111de565b905060006106c4826111e8565b905060008267ffffffffffffffff8111156106e1576106e1611650565b60405190808252806020026020018201604052801561070a578160200160208202803683370190505b50905060005b8381101561079b576001600160a01b038616600090815260066020526040812061073a9083611259565b6001600160a01b038816600090815260076020908152604080832084845290915290205490915061076b908561126c565b83838151811061077d5761077d61184d565b6020908102919091010152508061079381611896565b915050610710565b50949350505050565b606060028054806020026020016040519081016040528092919081815260200182805480156107f257602002820191906000526020600020905b8154815260200190600101908083116107de575b5050505050905090565b600054600160a01b900460ff16156108495760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b3360009081526006602052604081208190610863906111de565b90506000610870826111e8565b905060005b828110156108fb573360009081526006602052604081206108969083611259565b3360009081526007602090815260408083208484529091529020549091506108be908461126c565b6108c890866118d0565b336000908152600760209081526040808320948352939052919091204290559350806108f381611896565b915050610875565b50600480546040516340c10f1960e01b81523392810192909252602482018590526001600160a01b0316906340c10f1990604401600060405180830381600087803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b50505050505050565b600054600160a01b900460ff16156109b35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b60005b818110156105b0576109f18383838181106109d3576109d361184d565b336000908152600660209081526040909120939102013590506112c4565b503360009081526007602052604081204291858585818110610a1557610a1561184d565b60209081029290920135835250810191909152604001600020556005546001600160a01b03166323b872dd3330868686818110610a5457610a5461184d565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610aab57600080fd5b505af1158015610abf573d6000803e3d6000fd5b505050508080610ace90611896565b9150506109b6565b60008060005b600254811015610b205760028181548110610af957610af961184d565b90600052602060002001548410610b0e578091505b80610b1881611896565b915050610adc565b5092915050565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b61069060006112d0565b6000546001600160a01b03163314610bc15760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b610690611320565b600054600160a01b900460ff1615610c165760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b3360009081526006602052604081208190610c3990610c34906111de565b6111e8565b905060005b83811015610e1757610c79858583818110610c5b57610c5b61184d565b336000908152600660209081526040909120939102013590506113a8565b610cb15760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606401610395565b336000908152600760205260408120610cf291878785818110610cd657610cd661184d565b905060200201358152602001908152602001600020548361126c565b610cfc90846118d0565b9250610d31858583818110610d1357610d1361184d565b336000908152600660209081526040909120939102013590506113c0565b5033600090815260076020526040812090868684818110610d5457610d5461184d565b602090810292909201358352508101919091526040016000908120556005546001600160a01b03166342842e0e3033888886818110610d9557610d9561184d565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610dec57600080fd5b505af1158015610e00573d6000803e3d6000fd5b505050508080610e0f90611896565b915050610c3e565b50600480546040516340c10f1960e01b81523392810192909252602482018490526001600160a01b0316906340c10f1990604401600060405180830381600087803b158015610e6557600080fd5b505af1158015610e79573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b606060038054806020026020016040519081016040528092919081815260200182805480156107f257602002820191906000526020600020908154815260200190600101908083116107de575050505050905090565b6000546001600160a01b03163314610f8b5760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260066020526040812060609190610fd2906111de565b905060008167ffffffffffffffff811115610fef57610fef611650565b604051908082528060200260200182016040528015611018578160200160208202803683370190505b50905060005b82811015611077576001600160a01b03851660009081526006602052604090206110489082611259565b82828151811061105a5761105a61184d565b60209081029190910101528061106f81611896565b91505061101e565b509392505050565b6000546001600160a01b031633146110c75760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b6001600160a01b03811661112c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610395565b611135816112d0565b50565b600054600160a01b900460ff166111915760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610395565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006105da825490565b60008060005b600254811015611232576002818154811061120b5761120b61184d565b90600052602060002001548410611220578091505b8061122a81611896565b9150506111ee565b50600381815481106112465761124661184d565b9060005260206000200154915050919050565b600061126583836113cc565b9392505050565b60008261127b575060006105da565b6201518082606460015461128f91906118e8565b61129991906118b1565b6001546112a691906118d0565b6112b0854261190a565b6112ba91906118b1565b61126591906118e8565b600061126583836113f6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff161561136d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111c13390565b60008181526001830160205260408120541515611265565b60006112658383611445565b60008260000182815481106113e3576113e361184d565b9060005260206000200154905092915050565b600081815260018301602052604081205461143d575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105da565b5060006105da565b6000818152600183016020526040812054801561152e57600061146960018361190a565b855490915060009061147d9060019061190a565b90508181146114e257600086600001828154811061149d5761149d61184d565b90600052602060002001549050808760000184815481106114c0576114c061184d565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806114f3576114f3611921565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105da565b60009150506105da565b828054828255906000526020600020908101928215611573579160200282015b82811115611573578251825591602001919060010190611558565b5061157f929150611583565b5090565b5b8082111561157f5760008155600101611584565b60008083601f8401126115aa57600080fd5b50813567ffffffffffffffff8111156115c257600080fd5b6020830191508360208260051b85010111156115dd57600080fd5b9250929050565b6001600160a01b038116811461113557600080fd5b60008060006040848603121561160e57600080fd5b833567ffffffffffffffff81111561162557600080fd5b61163186828701611598565b9094509250506020840135611645816115e4565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261167757600080fd5b8135602067ffffffffffffffff8083111561169457611694611650565b8260051b604051601f19603f830116810181811084821117156116b9576116b9611650565b6040529384528581018301938381019250878511156116d757600080fd5b83870191505b848210156116f6578135835291830191908301906116dd565b979650505050505050565b6000806040838503121561171457600080fd5b823567ffffffffffffffff8082111561172c57600080fd5b61173886838701611666565b9350602085013591508082111561174e57600080fd5b5061175b85828601611666565b9150509250929050565b6000806040838503121561177857600080fd5b8235611783816115e4565b946020939093013593505050565b6000602082840312156117a357600080fd5b5035919050565b6000602082840312156117bc57600080fd5b8135611265816115e4565b6020808252825182820181905260009190848201906040850190845b818110156117ff578351835292840192918401916001016117e3565b50909695505050505050565b6000806020838503121561181e57600080fd5b823567ffffffffffffffff81111561183557600080fd5b61184185828601611598565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187557600080fd5b8151611265816115e4565b634e487b7160e01b600052601160045260246000fd5b60006000198214156118aa576118aa611880565b5060010190565b60008160001904831182151516156118cb576118cb611880565b500290565b600082198211156118e3576118e3611880565b500190565b60008261190557634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561191c5761191c611880565b500390565b634e487b7160e01b600052603160045260246000fdfe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212209694e9cb064810d35763f558977be665718d0338e905ea0c5fa9092ca14a0ea364736f6c634300080b003300000000000000000000000084f6c4b892547a6acee98a3954bc2089f97c43f3000000000000000000000000c00b94a43fe8835a4eaaca34023fdc9e293fdc21
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101985760003560e01c80635c975abb116100e3578063983d95ce1161008c578063cac8d53811610066578063cac8d53814610318578063e3a9db1a1461032b578063f2fde38b1461033e57600080fd5b8063983d95ce146102ea57806399e9b8eb146102fd578063b9c7c95f1461031057600080fd5b8063715018a6116100bd578063715018a6146102c95780638456cb59146102d15780638da5cb5b146102d957600080fd5b80635c975abb1461028f57806361a52a36146102ac5780636dda34db146102b657600080fd5b806334fcf437116101455780634a95d9d51161011f5780634a95d9d51461026c5780634e71d92d14610274578063598b8e711461027c57600080fd5b806334fcf437146102315780633f4ba83a14610244578063479ba7ae1461024c57600080fd5b80632352a864116101765780632352a864146101eb578063276184ae146102165780632c4e722e1461022957600080fd5b806307e0e6bc1461019d5780631b8ebc3c146101b2578063203b3b2b146101c5575b600080fd5b6101b06101ab3660046115f9565b610351565b005b6101b06101c0366004611701565b6104f0565b6101d86101d3366004611765565b6105b5565b6040519081526020015b60405180910390f35b6005546101fe906001600160a01b031681565b6040516001600160a01b0390911681526020016101e2565b6004546101fe906001600160a01b031681565b6001546101d8565b6101b061023f366004611791565b6105e0565b6101b0610640565b61025f61025a3660046117aa565b610692565b6040516101e291906117c7565b61025f6107a4565b6101b06107fc565b6101b061028a36600461180b565b610966565b600054600160a01b900460ff1660405190151581526020016101e2565b6101d86201518081565b6101d86102c4366004611791565b610ad6565b6101b0610b27565b6101b0610b79565b6000546001600160a01b03166101fe565b6101b06102f836600461180b565b610bc9565b6101b061030b3660046117aa565b610e83565b61025f610eed565b6101b06103263660046117aa565b610f43565b61025f6103393660046117aa565b610fad565b6101b061034c3660046117aa565b61107f565b6000546001600160a01b0316331461039e5760405162461bcd60e51b8152602060048201819052602482015260008051602061193883398151915260448201526064015b60405180910390fd5b60005b828110156104ea5760055430906001600160a01b0316636352211e8686858181106103ce576103ce61184d565b905060200201356040518263ffffffff1660e01b81526004016103f391815260200190565b602060405180830381865afa158015610410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104349190611863565b6001600160a01b031614156104d8576005546001600160a01b03166323b872dd30848787868181106104685761046861184d565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b1580156104bf57600080fd5b505af11580156104d3573d6000803e3d6000fd5b505050505b806104e281611896565b9150506103a1565b50505050565b6000546001600160a01b031633146105385760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b80518251146105895760405162461bcd60e51b815260206004820152601060248201527f646966666572656e74206c656e677468000000000000000000000000000000006044820152606401610395565b815161059c906002906020850190611538565b5080516105b0906003906020840190611538565b505050565b6001600160a01b03821660009081526007602090815260408083208484529091529020545b92915050565b6000546001600160a01b031633146106285760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b61063a81670de0b6b3a76400006118b1565b60015550565b6000546001600160a01b031633146106885760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b610690611138565b565b6001600160a01b0381166000908152600660205260408120606091906106b7906111de565b905060006106c4826111e8565b905060008267ffffffffffffffff8111156106e1576106e1611650565b60405190808252806020026020018201604052801561070a578160200160208202803683370190505b50905060005b8381101561079b576001600160a01b038616600090815260066020526040812061073a9083611259565b6001600160a01b038816600090815260076020908152604080832084845290915290205490915061076b908561126c565b83838151811061077d5761077d61184d565b6020908102919091010152508061079381611896565b915050610710565b50949350505050565b606060028054806020026020016040519081016040528092919081815260200182805480156107f257602002820191906000526020600020905b8154815260200190600101908083116107de575b5050505050905090565b600054600160a01b900460ff16156108495760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b3360009081526006602052604081208190610863906111de565b90506000610870826111e8565b905060005b828110156108fb573360009081526006602052604081206108969083611259565b3360009081526007602090815260408083208484529091529020549091506108be908461126c565b6108c890866118d0565b336000908152600760209081526040808320948352939052919091204290559350806108f381611896565b915050610875565b50600480546040516340c10f1960e01b81523392810192909252602482018590526001600160a01b0316906340c10f1990604401600060405180830381600087803b15801561094957600080fd5b505af115801561095d573d6000803e3d6000fd5b50505050505050565b600054600160a01b900460ff16156109b35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b60005b818110156105b0576109f18383838181106109d3576109d361184d565b336000908152600660209081526040909120939102013590506112c4565b503360009081526007602052604081204291858585818110610a1557610a1561184d565b60209081029290920135835250810191909152604001600020556005546001600160a01b03166323b872dd3330868686818110610a5457610a5461184d565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610aab57600080fd5b505af1158015610abf573d6000803e3d6000fd5b505050508080610ace90611896565b9150506109b6565b60008060005b600254811015610b205760028181548110610af957610af961184d565b90600052602060002001548410610b0e578091505b80610b1881611896565b915050610adc565b5092915050565b6000546001600160a01b03163314610b6f5760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b61069060006112d0565b6000546001600160a01b03163314610bc15760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b610690611320565b600054600160a01b900460ff1615610c165760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b3360009081526006602052604081208190610c3990610c34906111de565b6111e8565b905060005b83811015610e1757610c79858583818110610c5b57610c5b61184d565b336000908152600660209081526040909120939102013590506113a8565b610cb15760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b6044820152606401610395565b336000908152600760205260408120610cf291878785818110610cd657610cd661184d565b905060200201358152602001908152602001600020548361126c565b610cfc90846118d0565b9250610d31858583818110610d1357610d1361184d565b336000908152600660209081526040909120939102013590506113c0565b5033600090815260076020526040812090868684818110610d5457610d5461184d565b602090810292909201358352508101919091526040016000908120556005546001600160a01b03166342842e0e3033888886818110610d9557610d9561184d565b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401600060405180830381600087803b158015610dec57600080fd5b505af1158015610e00573d6000803e3d6000fd5b505050508080610e0f90611896565b915050610c3e565b50600480546040516340c10f1960e01b81523392810192909252602482018490526001600160a01b0316906340c10f1990604401600060405180830381600087803b158015610e6557600080fd5b505af1158015610e79573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b03163314610ecb5760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b606060038054806020026020016040519081016040528092919081815260200182805480156107f257602002820191906000526020600020908154815260200190600101908083116107de575050505050905090565b6000546001600160a01b03163314610f8b5760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260066020526040812060609190610fd2906111de565b905060008167ffffffffffffffff811115610fef57610fef611650565b604051908082528060200260200182016040528015611018578160200160208202803683370190505b50905060005b82811015611077576001600160a01b03851660009081526006602052604090206110489082611259565b82828151811061105a5761105a61184d565b60209081029190910101528061106f81611896565b91505061101e565b509392505050565b6000546001600160a01b031633146110c75760405162461bcd60e51b815260206004820181905260248201526000805160206119388339815191526044820152606401610395565b6001600160a01b03811661112c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610395565b611135816112d0565b50565b600054600160a01b900460ff166111915760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610395565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60006105da825490565b60008060005b600254811015611232576002818154811061120b5761120b61184d565b90600052602060002001548410611220578091505b8061122a81611896565b9150506111ee565b50600381815481106112465761124661184d565b9060005260206000200154915050919050565b600061126583836113cc565b9392505050565b60008261127b575060006105da565b6201518082606460015461128f91906118e8565b61129991906118b1565b6001546112a691906118d0565b6112b0854261190a565b6112ba91906118b1565b61126591906118e8565b600061126583836113f6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a01b900460ff161561136d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610395565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111c13390565b60008181526001830160205260408120541515611265565b60006112658383611445565b60008260000182815481106113e3576113e361184d565b9060005260206000200154905092915050565b600081815260018301602052604081205461143d575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556105da565b5060006105da565b6000818152600183016020526040812054801561152e57600061146960018361190a565b855490915060009061147d9060019061190a565b90508181146114e257600086600001828154811061149d5761149d61184d565b90600052602060002001549050808760000184815481106114c0576114c061184d565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806114f3576114f3611921565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506105da565b60009150506105da565b828054828255906000526020600020908101928215611573579160200282015b82811115611573578251825591602001919060010190611558565b5061157f929150611583565b5090565b5b8082111561157f5760008155600101611584565b60008083601f8401126115aa57600080fd5b50813567ffffffffffffffff8111156115c257600080fd5b6020830191508360208260051b85010111156115dd57600080fd5b9250929050565b6001600160a01b038116811461113557600080fd5b60008060006040848603121561160e57600080fd5b833567ffffffffffffffff81111561162557600080fd5b61163186828701611598565b9094509250506020840135611645816115e4565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261167757600080fd5b8135602067ffffffffffffffff8083111561169457611694611650565b8260051b604051601f19603f830116810181811084821117156116b9576116b9611650565b6040529384528581018301938381019250878511156116d757600080fd5b83870191505b848210156116f6578135835291830191908301906116dd565b979650505050505050565b6000806040838503121561171457600080fd5b823567ffffffffffffffff8082111561172c57600080fd5b61173886838701611666565b9350602085013591508082111561174e57600080fd5b5061175b85828601611666565b9150509250929050565b6000806040838503121561177857600080fd5b8235611783816115e4565b946020939093013593505050565b6000602082840312156117a357600080fd5b5035919050565b6000602082840312156117bc57600080fd5b8135611265816115e4565b6020808252825182820181905260009190848201906040850190845b818110156117ff578351835292840192918401916001016117e3565b50909695505050505050565b6000806020838503121561181e57600080fd5b823567ffffffffffffffff81111561183557600080fd5b61184185828601611598565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561187557600080fd5b8151611265816115e4565b634e487b7160e01b600052601160045260246000fd5b60006000198214156118aa576118aa611880565b5060010190565b60008160001904831182151516156118cb576118cb611880565b500290565b600082198211156118e3576118e3611880565b500190565b60008261190557634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561191c5761191c611880565b500390565b634e487b7160e01b600052603160045260246000fdfe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212209694e9cb064810d35763f558977be665718d0338e905ea0c5fa9092ca14a0ea364736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000084f6c4b892547a6acee98a3954bc2089f97c43f3000000000000000000000000c00b94a43fe8835a4eaaca34023fdc9e293fdc21
-----Decoded View---------------
Arg [0] : _erc721Address (address): 0x84f6C4B892547a6aCEE98A3954bC2089f97c43f3
Arg [1] : _erc20Address (address): 0xC00B94A43FE8835a4EAACA34023FdC9e293fDc21
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000084f6c4b892547a6acee98a3954bc2089f97c43f3
Arg [1] : 000000000000000000000000c00b94a43fe8835a4eaaca34023fdc9e293fdc21
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.