Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 100 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Mint | 13422768 | 1173 days ago | IN | 0.05 ETH | 0.00624103 | ||||
Mint | 13414493 | 1174 days ago | IN | 0.05 ETH | 0.01786332 | ||||
Mint | 13414179 | 1174 days ago | IN | 0.05 ETH | 0.02667277 | ||||
Mint | 13412984 | 1175 days ago | IN | 0.05 ETH | 0.022472 | ||||
Mint | 13412645 | 1175 days ago | IN | 0.05 ETH | 0.0265162 | ||||
Mint | 13409043 | 1175 days ago | IN | 0.05 ETH | 0.0171998 | ||||
Mint | 13408724 | 1175 days ago | IN | 0.05 ETH | 0.01236839 | ||||
Mint | 13407319 | 1175 days ago | IN | 0.05 ETH | 0.01531676 | ||||
Mint | 13407122 | 1176 days ago | IN | 0.05 ETH | 0.0105173 | ||||
Mint | 13406610 | 1176 days ago | IN | 0.05 ETH | 0.01161114 | ||||
Mint | 13405885 | 1176 days ago | IN | 0.05 ETH | 0.01684106 | ||||
Mint | 13405336 | 1176 days ago | IN | 0.05 ETH | 0.01293028 | ||||
Mint | 13403914 | 1176 days ago | IN | 0.1 ETH | 0.02096937 | ||||
Mint | 13403663 | 1176 days ago | IN | 0.05 ETH | 0.01372403 | ||||
Mint | 13403584 | 1176 days ago | IN | 0.2 ETH | 0.02944489 | ||||
Mint | 13402025 | 1176 days ago | IN | 0.05 ETH | 0.01361738 | ||||
Mint | 13401899 | 1176 days ago | IN | 0.05 ETH | 0.01329488 | ||||
Mint | 13401722 | 1176 days ago | IN | 0.1 ETH | 0.02193899 | ||||
Mint | 13401712 | 1176 days ago | IN | 0.15 ETH | 0.03169418 | ||||
Mint | 13401663 | 1176 days ago | IN | 0.05 ETH | 0.01795346 | ||||
Mint | 13399877 | 1177 days ago | IN | 0.05 ETH | 0.01417611 | ||||
Mint | 13399555 | 1177 days ago | IN | 0.05 ETH | 0.01591038 | ||||
Mint | 13399470 | 1177 days ago | IN | 0.05 ETH | 0.02120486 | ||||
Mint | 13399450 | 1177 days ago | IN | 0.05 ETH | 0.0195658 | ||||
Mint | 13399450 | 1177 days ago | IN | 0.05 ETH | 0.02550818 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
13422768 | 1173 days ago | 0.05 ETH | ||||
13414493 | 1174 days ago | 0.05 ETH | ||||
13414179 | 1174 days ago | 0.05 ETH | ||||
13412984 | 1175 days ago | 0.05 ETH | ||||
13412645 | 1175 days ago | 0.05 ETH | ||||
13409043 | 1175 days ago | 0.05 ETH | ||||
13408724 | 1175 days ago | 0.05 ETH | ||||
13407319 | 1175 days ago | 0.05 ETH | ||||
13407122 | 1176 days ago | 0.05 ETH | ||||
13406610 | 1176 days ago | 0.05 ETH | ||||
13405885 | 1176 days ago | 0.05 ETH | ||||
13405336 | 1176 days ago | 0.05 ETH | ||||
13403914 | 1176 days ago | 0.1 ETH | ||||
13403663 | 1176 days ago | 0.05 ETH | ||||
13403584 | 1176 days ago | 0.2 ETH | ||||
13402025 | 1176 days ago | 0.05 ETH | ||||
13401899 | 1176 days ago | 0.05 ETH | ||||
13401722 | 1176 days ago | 0.1 ETH | ||||
13401712 | 1176 days ago | 0.15 ETH | ||||
13401663 | 1176 days ago | 0.05 ETH | ||||
13399877 | 1177 days ago | 0.05 ETH | ||||
13399555 | 1177 days ago | 0.05 ETH | ||||
13399470 | 1177 days ago | 0.05 ETH | ||||
13399450 | 1177 days ago | 0.05 ETH | ||||
13399450 | 1177 days ago | 0.05 ETH |
Loading...
Loading
Contract Name:
NFT_Market
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-10-05 */ pragma solidity 0.6.12; // SPDX-License-Identifier: BSD-3-Clause /** * @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.0.0, only sets of type `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; // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement. 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] = toDeleteIndex + 1; // All indexes are 1-based // 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) { require(set._values.length > index, "EnumerableSet: index out of bounds"); return set._values[index]; } // 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(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(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(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(uint256(_at(set._inner, index))); } // 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 Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } // Modern ERC20 Token interface interface IERC20 { function transfer(address to, uint amount) external returns (bool); function transferFrom(address from, address to, uint amount) external returns (bool); } // Modern ERC721 Token interface interface IERC721 { function transferFrom(address from, address to, uint tokenId) external; function mint(address to) external; function totalSupply() external view returns(uint256); } contract NFT_Market is Ownable { using SafeMath for uint; using EnumerableSet for EnumerableSet.UintSet; // =========== Start Smart Contract Setup ============== // MUST BE CONSTANT - THE FEE TOKEN ADDRESS AND NFT ADDRESS // the below addresses are trusted and constant so no issue of re-entrancy happens address public constant trustedNftAddress = 0x501c6522e3888e7C1fa6b6c01404F02e4AD08784; // minting fee in token, 10 tokens (10e18 because token has 18 decimals) uint public mintFee = 50e15; uint public maxFree = 0; uint public maxToMint = 5000; uint public maxPerTransaction = 25; // ============ End Smart Contract Setup ================ function setMintNativeFee(uint _mintFee) public onlyOwner { mintFee = _mintFee; } function setMaxPerTransaction(uint _max) public onlyOwner { maxPerTransaction = _max; } function totalSupply() public view returns (uint256){ return IERC721(trustedNftAddress).totalSupply(); } function canMintFree(uint256 count) public view returns (bool) { uint256 totalMinted = IERC721(trustedNftAddress).totalSupply(); return totalMinted.add(count) < maxFree; } function mint(uint256 count) payable public { // owner can mint without fee // other users need to pay a fixed fee in token uint256 totalMinted = IERC721(trustedNftAddress).totalSupply(); require (count < maxPerTransaction, "Max to mint reached"); require (totalMinted.add(count) <= maxToMint, "Max supply reached"); address payable _owner = address(uint160(owner)); if (totalMinted.add(count) > maxFree) { require(msg.value >= mintFee.mul(count), "Insufficient fees"); _owner.transfer(msg.value); } for(uint i = 0; i < count; i++){ IERC721(trustedNftAddress).mint(msg.sender); } } event ERC721Received(address operator, address from, uint256 tokenId, bytes data); // ERC721 Interface Support Function function onERC721Received(address operator, address from, uint256 tokenId, bytes memory data) public returns(bytes4) { require(msg.sender == trustedNftAddress); emit ERC721Received(operator, from, tokenId, data); return this.onERC721Received.selector; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"ERC721Received","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"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"canMintFree","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFree","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxToMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_max","type":"uint256"}],"name":"setMaxPerTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintFee","type":"uint256"}],"name":"setMintNativeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","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":"trustedNftAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405266b1a2bc2ec500006001556000600255611388600355601960045534801561002b57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e6d8061007b6000396000f3fe6080604052600436106100c25760003560e01c80634b980d671161007f578063a10f2c2911610059578063a10f2c291461038d578063ccfdd2f8146103ce578063e4ddd04a14610409578063f2fde38b1461045a576100c2565b80634b980d67146102f35780638da5cb5b1461031e578063a0712d681461035f576100c2565b806305e2b0c3146100c75780630ba133c51461010257806313966db51461012d578063150b7a021461015857806318160ddd1461029d578063485a68a3146102c8575b600080fd5b3480156100d357600080fd5b50610100600480360360208110156100ea57600080fd5b81019080803590602001909291905050506104ab565b005b34801561010e57600080fd5b5061011761050d565b6040518082815260200191505060405180910390f35b34801561013957600080fd5b50610142610513565b6040518082815260200191505060405180910390f35b34801561016457600080fd5b506102686004803603608081101561017b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101e257600080fd5b8201836020820111156101f457600080fd5b8035906020019184600183028401116401000000008311171561021657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610519565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156102a957600080fd5b506102b2610659565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b506102dd6106f5565b6040518082815260200191505060405180910390f35b3480156102ff57600080fd5b506103086106fb565b6040518082815260200191505060405180910390f35b34801561032a57600080fd5b50610333610701565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61038b6004803603602081101561037557600080fd5b8101908080359060200190929190505050610725565b005b34801561039957600080fd5b506103a2610a86565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103da57600080fd5b50610407600480360360208110156103f157600080fd5b8101908080359060200190929190505050610a9e565b005b34801561041557600080fd5b506104426004803603602081101561042c57600080fd5b8101908080359060200190929190505050610b00565b60405180821515815260200191505060405180910390f35b34801561046657600080fd5b506104a96004803603602081101561047d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb9565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461050357600080fd5b8060018190555050565b60035481565b60015481565b600073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056757600080fd5b7fa05d90f300156ad1b545bc5d8197024456f21d22a708f5af04dd293e3d60525185858585604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561060a5780820151818401526020810190506105ef565b50505050905090810190601f1680156106375780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a163150b7a0260e01b9050949350505050565b600073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b557600080fd5b505afa1580156106c9573d6000803e3d6000fd5b505050506040513d60208110156106df57600080fd5b8101908080519060200190929190505050905090565b60025481565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561078157600080fd5b505afa158015610795573d6000803e3d6000fd5b505050506040513d60208110156107ab57600080fd5b810190808051906020019092919050505090506004548210610835576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d617820746f206d696e7420726561636865640000000000000000000000000081525060200191505060405180910390fd5b60035461084b8383610d0890919063ffffffff16565b11156108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d617820737570706c792072656163686564000000000000000000000000000081525060200191505060405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506002546108fb8484610d0890919063ffffffff16565b11156109d35761091683600154610d9090919063ffffffff16565b34101561098b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e73756666696369656e74206665657300000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156109d1573d6000803e3d6000fd5b505b60005b83811015610a805773501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610a5b57600080fd5b505af1158015610a6f573d6000803e3d6000fd5b5050505080806001019150506109d6565b50505050565b73501c6522e3888e7c1fa6b6c01404f02e4ad0878481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610af657600080fd5b8060048190555050565b60008073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5d57600080fd5b505afa158015610b71573d6000803e3d6000fd5b505050506040513d6020811015610b8757600080fd5b81019080805190602001909291905050509050600254610bb08483610d0890919063ffffffff16565b10915050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c1157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c4b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015610d86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415610da35760009050610e10565b6000828402905082848281610db457fe5b0414610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610e176021913960400191505060405180910390fd5b809150505b9291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c24b7367ccdd474bd497e87303225a4a950396bf3b70bfe6c008e0b56b46d27064736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106100c25760003560e01c80634b980d671161007f578063a10f2c2911610059578063a10f2c291461038d578063ccfdd2f8146103ce578063e4ddd04a14610409578063f2fde38b1461045a576100c2565b80634b980d67146102f35780638da5cb5b1461031e578063a0712d681461035f576100c2565b806305e2b0c3146100c75780630ba133c51461010257806313966db51461012d578063150b7a021461015857806318160ddd1461029d578063485a68a3146102c8575b600080fd5b3480156100d357600080fd5b50610100600480360360208110156100ea57600080fd5b81019080803590602001909291905050506104ab565b005b34801561010e57600080fd5b5061011761050d565b6040518082815260200191505060405180910390f35b34801561013957600080fd5b50610142610513565b6040518082815260200191505060405180910390f35b34801561016457600080fd5b506102686004803603608081101561017b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156101e257600080fd5b8201836020820111156101f457600080fd5b8035906020019184600183028401116401000000008311171561021657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610519565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156102a957600080fd5b506102b2610659565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b506102dd6106f5565b6040518082815260200191505060405180910390f35b3480156102ff57600080fd5b506103086106fb565b6040518082815260200191505060405180910390f35b34801561032a57600080fd5b50610333610701565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61038b6004803603602081101561037557600080fd5b8101908080359060200190929190505050610725565b005b34801561039957600080fd5b506103a2610a86565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103da57600080fd5b50610407600480360360208110156103f157600080fd5b8101908080359060200190929190505050610a9e565b005b34801561041557600080fd5b506104426004803603602081101561042c57600080fd5b8101908080359060200190929190505050610b00565b60405180821515815260200191505060405180910390f35b34801561046657600080fd5b506104a96004803603602081101561047d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb9565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461050357600080fd5b8060018190555050565b60035481565b60015481565b600073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056757600080fd5b7fa05d90f300156ad1b545bc5d8197024456f21d22a708f5af04dd293e3d60525185858585604051808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561060a5780820151818401526020810190506105ef565b50505050905090810190601f1680156106375780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a163150b7a0260e01b9050949350505050565b600073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106b557600080fd5b505afa1580156106c9573d6000803e3d6000fd5b505050506040513d60208110156106df57600080fd5b8101908080519060200190929190505050905090565b60025481565b60045481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561078157600080fd5b505afa158015610795573d6000803e3d6000fd5b505050506040513d60208110156107ab57600080fd5b810190808051906020019092919050505090506004548210610835576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4d617820746f206d696e7420726561636865640000000000000000000000000081525060200191505060405180910390fd5b60035461084b8383610d0890919063ffffffff16565b11156108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4d617820737570706c792072656163686564000000000000000000000000000081525060200191505060405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506002546108fb8484610d0890919063ffffffff16565b11156109d35761091683600154610d9090919063ffffffff16565b34101561098b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e73756666696369656e74206665657300000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156109d1573d6000803e3d6000fd5b505b60005b83811015610a805773501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610a5b57600080fd5b505af1158015610a6f573d6000803e3d6000fd5b5050505080806001019150506109d6565b50505050565b73501c6522e3888e7c1fa6b6c01404f02e4ad0878481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610af657600080fd5b8060048190555050565b60008073501c6522e3888e7c1fa6b6c01404f02e4ad0878473ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5d57600080fd5b505afa158015610b71573d6000803e3d6000fd5b505050506040513d6020811015610b8757600080fd5b81019080805190602001909291905050509050600254610bb08483610d0890919063ffffffff16565b10915050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c1157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c4b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015610d86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415610da35760009050610e10565b6000828402905082848281610db457fe5b0414610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610e176021913960400191505060405180910390fd5b809150505b9291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c24b7367ccdd474bd497e87303225a4a950396bf3b70bfe6c008e0b56b46d27064736f6c634300060c0033
Deployed Bytecode Sourcemap
14822:2410:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15543:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15400:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15336:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16942:285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;15759:116;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15370:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15435:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13558:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16081:717;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15161:86;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15650:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15883:190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14177:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15543:95;13988:5;;;;;;;;;;13974:19;;:10;:19;;;13966:28;;;;;;15622:8:::1;15612:7;:18;;;;15543:95:::0;:::o;15400:28::-;;;;:::o;15336:27::-;;;;:::o;16942:285::-;17051:6;15205:42;17078:31;;:10;:31;;;17070:40;;;;;;17126:45;17141:8;17151:4;17157:7;17166:4;17126:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17189:30;;;17182:37;;16942:285;;;;;;:::o;15759:116::-;15803:7;15205:42;15827:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15820:47;;15759:116;:::o;15370:23::-;;;;:::o;15435:34::-;;;;:::o;13558:20::-;;;;;;;;;;;;:::o;16081:717::-;16232:19;15205:42;16254:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16232:62;;16322:17;;16314:5;:25;16305:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16409:9;;16383:22;16399:5;16383:11;:15;;:22;;;;:::i;:::-;:35;;16374:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16454:22;16495:5;;;;;;;;;;;16454:48;;16542:7;;16517:22;16533:5;16517:11;:15;;:22;;;;:::i;:::-;:32;16513:167;;;16587:18;16599:5;16587:7;;:11;;:18;;;;:::i;:::-;16574:9;:31;;16566:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16642:6;:15;;:26;16658:9;16642:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16513:167;16694:6;16690:99;16710:5;16706:1;:9;16690:99;;;15205:42;16734:31;;;16766:10;16734:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16717:3;;;;;;;16690:99;;;;16081:717;;;:::o;15161:86::-;15205:42;15161:86;:::o;15650:101::-;13988:5;;;;;;;;;;13974:19;;:10;:19;;;13966:28;;;;;;15739:4:::1;15719:17;:24;;;;15650:101:::0;:::o;15883:190::-;15940:4;15955:19;15205:42;15977:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15955:62;;16058:7;;16033:22;16049:5;16033:11;:15;;:22;;;;:::i;:::-;:32;16026:39;;;15883:190;;;:::o;14177:178::-;13988:5;;;;;;;;;;13974:19;;:10;:19;;;13966:28;;;;;;14274:1:::1;14254:22;;:8;:22;;;;14246:31;;;::::0;::::1;;14317:8;14289:37;;14310:5;::::0;::::1;;;;;;;;14289:37;;;;;;;;;;;;14341:8;14333:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;14177:178:::0;:::o;8881:181::-;8939:7;8959:9;8975:1;8971;:5;8959:17;;9000:1;8995;:6;;8987:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9053:1;9046:8;;;8881:181;;;;:::o;10235:471::-;10293:7;10543:1;10538;:6;10534:47;;;10568:1;10561:8;;;;10534:47;10593:9;10609:1;10605;:5;10593:17;;10638:1;10633;10629;:5;;;;;;:10;10621:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10697:1;10690:8;;;10235:471;;;;;:::o
Swarm Source
ipfs://c24b7367ccdd474bd497e87303225a4a950396bf3b70bfe6c008e0b56b46d270
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.