Feature Tip: Add private address tag to any address under My Name Tag !
ERC-1155
Overview
Max Total Supply
2,914 GMLING
Holders
2,914
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MoonlingsSBT
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.19; import "./Minimal1155SBT.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; /** * @author SanLeo461, on behalf of Moonlings */ contract MoonlingsSBT is Minimal1155SBT, Ownable { bool public canAirdrop = true; uint256 public supply = 0; string public name = "GMoonling to You - Moonpass"; string public symbol = "GMLING"; uint256 private _storageCounter = START_BALANCES_SLOT; uint256 private _storageUpto = 0; constructor(string memory uri_) Minimal1155SBT(uri_) {} function airdrop(bytes calldata addresses) external onlyOwner { require(canAirdrop, "Airdrop has been disabled"); require(addresses.length % 20 == 0, "Invalid addresses length"); uint256 _storageCounterVal = _storageCounter; uint256 _storageUptoVal = _storageUpto; supply += addresses.length / 20; assembly { let sz := div(addresses.length, 20) let storageCounter := _storageCounterVal let currentStoreAcc := sload(_storageCounterVal) let upto := _storageUptoVal let operator := caller() let zeroAddress := 0 let signature := 0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62 mstore(0x40, 1) mstore(0x60, 1) for { let i := 0 } lt(i, sz) { i := add(i, 1) } { let offset := mul(i, 20) let toAirdropTo := shr(96, calldataload(add(addresses.offset, offset))) log4(0x40, 0x40, signature, operator, zeroAddress, toAirdropTo) switch gt(upto, 11) case 0 { currentStoreAcc := or(currentStoreAcc, shl(sub(96, mul(upto, 8)), toAirdropTo)) upto := add(upto, 20) } default { let overlap := sub(upto, 12) let toStore := or(currentStoreAcc, shr(mul(overlap, 8), toAirdropTo)) sstore(storageCounter, toStore) storageCounter := add(storageCounter, 1) currentStoreAcc := shl(sub(256, mul(overlap, 8)), toAirdropTo) upto := overlap } } if gt(upto, 0) { sstore(storageCounter, currentStoreAcc) } _storageCounterVal := storageCounter _storageUptoVal := upto } _storageCounter = _storageCounterVal; _storageUpto = _storageUptoVal; } function getAddressIndexed(uint256 index) public view returns (address toReturn) { uint256 startBalancesSlot = START_BALANCES_SLOT; assembly { toReturn := 0 let storageCounter := startBalancesSlot let slotIn := div(mul(20, index), 32) let indexIn := mod(mul(20, index), 32) let slot := sload(add(storageCounter, slotIn)) toReturn := shl(mul(indexIn, 8), slot) switch gt(indexIn, 12) case 0 { toReturn := shr(96, toReturn) } default { let overlap := sub(indexIn, 12) toReturn := shl(mul(overlap, 8), shr(add(96, mul(overlap, 8)), toReturn)) let slot2 := sload(add(storageCounter, add(slotIn, 1))) toReturn := or(toReturn, shr(sub(256, mul(overlap, 8)), slot2)) } } } function _isAddressIncluded(address toFind, uint256 begin, uint256 end) internal view returns (bool ret) { uint160 toFindInt = uint160(toFind); uint256 len = end - begin; if (len == 0) { return false; } else if (len == 1) { return toFind == getAddressIndexed(begin); } uint256 mid = begin + len / 2; uint160 midAddr = uint160(getAddressIndexed(mid)); if (uint160(midAddr) > toFindInt) { return _isAddressIncluded(toFind, begin, mid); } else if (uint160(midAddr) < toFindInt) { return _isAddressIncluded(toFind, mid, end); } return true; } function balanceOf(address account, uint256 id) public view override returns (uint256) { require(account != address(0), "ERC1155: address zero is not a valid owner"); require(id == TOKEN_ID, "ERC1155: invalid token ID"); return _isAddressIncluded(account, 0, supply) ? 1 : 0; } function setURI(string memory uri_) external onlyOwner { _setURI(uri_); } function renounceAirdropRights() external onlyOwner { canAirdrop = false; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (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 Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling 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 (token/ERC1155/extensions/IERC1155MetadataURI.sol) pragma solidity ^0.8.0; import "../IERC1155.sol"; /** * @dev Interface of the optional ERC1155MetadataExtension interface, as defined * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. * * _Available since v3.1._ */ interface IERC1155MetadataURI is IERC1155 { /** * @dev Returns the URI for token type `id`. * * If the `\{id\}` substring is present in the URI, it must be replaced by * clients with the actual token type ID. */ function uri(uint256 id) external view returns (string memory); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/IERC1155.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values ); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch( address[] calldata accounts, uint256[] calldata ids ) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.19; import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; import "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol"; /** * @author SanLeo461, on behalf of Moonlings */ contract Minimal1155SBT is IERC1155, IERC1155MetadataURI, ERC165 { uint256 public constant TOKEN_ID = 1; uint256 public constant START_BALANCES_SLOT = uint256(keccak256('1155sbt.start_balances')) - 1; error TokenIsSoulbound(); // Used as the URI for every token as there is only 1 token ID. string private _uri; /** * @dev See {_setURI}. */ constructor(string memory uri_) { _setURI(uri_); } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC1155).interfaceId || interfaceId == type(IERC1155MetadataURI).interfaceId || super.supportsInterface(interfaceId); } function uri(uint256) public view virtual override returns (string memory) { return _uri; } /** * @dev See {IERC1155-balanceOf}. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) public view virtual override returns (uint256) { require(account != address(0), "ERC1155: address zero is not a valid owner"); require(id == TOKEN_ID, "ERC1155: invalid token ID"); return 0; } /** * @dev See {IERC1155-balanceOfBatch}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] memory accounts, uint256[] memory ids) public view virtual override returns (uint256[] memory) { require(accounts.length == ids.length, "ERC1155: accounts and ids length mismatch"); uint256[] memory batchBalances = new uint256[](accounts.length); for (uint256 i = 0; i < accounts.length; ++i) { batchBalances[i] = balanceOf(accounts[i], ids[i]); } return batchBalances; } /** * @dev See {IERC1155-setApprovalForAll}. */ function setApprovalForAll(address, /* operator */ bool /* approved */ ) public pure override { revert TokenIsSoulbound(); } /** * @dev See {IERC1155-isApprovedForAll}. */ function isApprovedForAll(address, /* account */ address /* operator */ ) public pure override returns (bool) { return false; } /** * @dev See {IERC1155-safeTransferFrom}. */ function safeTransferFrom( address, /* from */ address, /* to */ uint256, /* id */ uint256, /* amount */ bytes memory /* data */ ) public virtual override { revert TokenIsSoulbound(); } /** * @dev See {IERC1155-safeBatchTransferFrom}. */ function safeBatchTransferFrom( address, /* from */ address, /* to */ uint256[] memory, /* ids */ uint256[] memory, /* amounts */ bytes memory /* data */ ) public virtual override { revert TokenIsSoulbound(); } function _setURI(string memory newuri) internal virtual { _uri = newuri; emit URI(newuri, TOKEN_ID); } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"uri_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"TokenIsSoulbound","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[],"name":"START_BALANCES_SLOT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKEN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"addresses","type":"bytes"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canAirdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getAddressIndexed","outputs":[{"internalType":"address","name":"toReturn","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceAirdropRights","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bool","name":"","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"uri_","type":"string"}],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6001805460ff60a01b1916600160a01b179055600060025560c0604052601b60809081527f474d6f6f6e6c696e6720746f20596f75202d204d6f6f6e70617373000000000060a0526003906200005690826200024c565b50604080518082019091526006815265474d4c494e4760d01b60208201526004906200008390826200024c565b50620000b160017f2f2d49a864067bf224884f35cb3a1b5a61c91f0dbeccd1edd8aa755c2bc29b6662000318565b6005556000600655348015620000c657600080fd5b506040516200177938038062001779833981016040819052620000e99162000366565b80620000f58162000108565b50620001013362000155565b5062000453565b60006200011682826200024c565b5060017f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b826040516200014a91906200041e565b60405180910390a250565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001d257607f821691505b602082108103620001f357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024757600081815260208120601f850160051c81016020861015620002225750805b601f850160051c820191505b8181101562000243578281556001016200022e565b5050505b505050565b81516001600160401b03811115620002685762000268620001a7565b6200028081620002798454620001bd565b84620001f9565b602080601f831160018114620002b857600084156200029f5750858301515b600019600386901b1c1916600185901b17855562000243565b600085815260208120601f198616915b82811015620002e957888601518255948401946001909101908401620002c8565b5085821015620003085787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156200033a57634e487b7160e01b600052601160045260246000fd5b92915050565b60005b838110156200035d57818101518382015260200162000343565b50506000910152565b6000602082840312156200037957600080fd5b81516001600160401b03808211156200039157600080fd5b818401915084601f830112620003a657600080fd5b815181811115620003bb57620003bb620001a7565b604051601f8201601f19908116603f01168101908382118183101715620003e657620003e6620001a7565b816040528281528760208487010111156200040057600080fd5b6200041383602083016020880162000340565b979650505050505050565b60208152600082518060208401526200043f81604085016020870162000340565b601f01601f19169190910160400192915050565b61131680620004636000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b85780638da5cb5b1161007c5780638da5cb5b1461026f57806395d89b4114610280578063a22cb46514610288578063e985e9c514610296578063f242432a146102ac578063f2fde38b146102ba57600080fd5b80634e1273f41461022f578063514fd4a31461024f578063715018a6146102575780637d0907af1461025f57806389a890021461026757600080fd5b80630e89341c116100ff5780630e89341c146101b757806325319135146101ca5780632785bf16146101de5780632eb2c2d6146101f15780633270353b1461020457600080fd5b8062fdd58e1461013b57806301ffc9a71461016157806302fe530514610184578063047fc9aa1461019957806306fdde03146101a2575b600080fd5b61014e610149366004610b85565b6102cd565b6040519081526020015b60405180910390f35b61017461016f366004610baf565b6103b5565b6040519015158152602001610158565b610197610192366004610c78565b610405565b005b61014e60025481565b6101aa610419565b6040516101589190610cc9565b6101aa6101c5366004610d17565b6104a7565b60015461017490600160a01b900460ff1681565b6101976101ec366004610d30565b61053b565b6101976101ff366004610e51565b6106e4565b610217610212366004610d17565b6106fd565b6040516001600160a01b039091168152602001610158565b61024261023d366004610efb565b610792565b6040516101589190610fbb565b61014e6108bc565b6101976108ea565b6101976108fe565b61014e600181565b6001546001600160a01b0316610217565b6101aa610915565b6101976101ff366004610fff565b6101746102a436600461103b565b600092915050565b6101976101ff36600461106e565b6101976102c83660046110d3565b610922565b60006001600160a01b03831661033d5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b6001821461038d5760405162461bcd60e51b815260206004820152601960248201527f455243313135353a20696e76616c696420746f6b656e204944000000000000006044820152606401610334565b61039b836000600254610998565b6103a65760006103a9565b60015b60ff1690505b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806103e657506001600160e01b031982166303a24d0760e21b145b806103af57506301ffc9a760e01b6001600160e01b03198316146103af565b61040d610a74565b61041681610ace565b50565b60038054610426906110ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610452906110ee565b801561049f5780601f106104745761010080835404028352916020019161049f565b820191906000526020600020905b81548152906001019060200180831161048257829003601f168201915b505050505081565b6060600080546104b6906110ee565b80601f01602080910402602001604051908101604052809291908181526020018280546104e2906110ee565b801561052f5780601f106105045761010080835404028352916020019161052f565b820191906000526020600020905b81548152906001019060200180831161051257829003601f168201915b50505050509050919050565b610543610a74565b600154600160a01b900460ff1661059c5760405162461bcd60e51b815260206004820152601960248201527f41697264726f7020686173206265656e2064697361626c6564000000000000006044820152606401610334565b6105a760148261113e565b156105f45760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420616464726573736573206c656e67746800000000000000006044820152606401610334565b600554600654610605601484611168565b60026000828254610616919061117c565b9250508190555060148304828354833360007fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f626001604052600160605260005b878110156106c257601481028c013560601c80848685604080a4600b861180156106a4576008600b1990970196870282811c9890981789556001909801976101009790970381901b966106b8565b81600888026060031b881797506014870196505b5050600101610656565b5050505060008111156106d3578183555b600592909255506006555050505050565b6040516358b2164f60e11b815260040160405180910390fd5b60008061072b60017f2f2d49a864067bf224884f35cb3a1b5a61c91f0dbeccd1edd8aa755c2bc29b6661118f565b602060148502908104808301546008601f9093169283021b9450919250829190600c8111801561078157600183850101546060600b1984016008029081019790971c871b610100979097031c9590951794610788565b8560601c95505b5050505050919050565b606081518351146107f75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610334565b6000835167ffffffffffffffff81111561081357610813610bd9565b60405190808252806020026020018201604052801561083c578160200160208202803683370190505b50905060005b84518110156108b457610887858281518110610860576108606111a2565b602002602001015185838151811061087a5761087a6111a2565b60200260200101516102cd565b828281518110610899576108996111a2565b60209081029190910101526108ad816111b8565b9050610842565b509392505050565b6108e760017f2f2d49a864067bf224884f35cb3a1b5a61c91f0dbeccd1edd8aa755c2bc29b6661118f565b81565b6108f2610a74565b6108fc6000610b17565b565b610906610a74565b6001805460ff60a01b19169055565b60048054610426906110ee565b61092a610a74565b6001600160a01b03811661098f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610334565b61041681610b17565b600083816109a6858561118f565b9050806000036109bb57600092505050610a6d565b806001036109e9576109cc856106fd565b6001600160a01b0316866001600160a01b03161492505050610a6d565b60006109f6600283611168565b610a00908761117c565b90506000610a0d826106fd565b9050836001600160a01b0316816001600160a01b03161115610a3f57610a34888884610998565b945050505050610a6d565b836001600160a01b0316816001600160a01b03161015610a6457610a34888388610998565b60019450505050505b9392505050565b6001546001600160a01b031633146108fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610334565b6000610ada8282611220565b5060017f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b82604051610b0c9190610cc9565b60405180910390a250565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b0381168114610b8057600080fd5b919050565b60008060408385031215610b9857600080fd5b610ba183610b69565b946020939093013593505050565b600060208284031215610bc157600080fd5b81356001600160e01b031981168114610a6d57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610c1857610c18610bd9565b604052919050565b600067ffffffffffffffff831115610c3a57610c3a610bd9565b610c4d601f8401601f1916602001610bef565b9050828152838383011115610c6157600080fd5b828260208301376000602084830101529392505050565b600060208284031215610c8a57600080fd5b813567ffffffffffffffff811115610ca157600080fd5b8201601f81018413610cb257600080fd5b610cc184823560208401610c20565b949350505050565b600060208083528351808285015260005b81811015610cf657858101830151858201604001528201610cda565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610d2957600080fd5b5035919050565b60008060208385031215610d4357600080fd5b823567ffffffffffffffff80821115610d5b57600080fd5b818501915085601f830112610d6f57600080fd5b813581811115610d7e57600080fd5b866020828501011115610d9057600080fd5b60209290920196919550909350505050565b600067ffffffffffffffff821115610dbc57610dbc610bd9565b5060051b60200190565b600082601f830112610dd757600080fd5b81356020610dec610de783610da2565b610bef565b82815260059290921b84018101918181019086841115610e0b57600080fd5b8286015b84811015610e265780358352918301918301610e0f565b509695505050505050565b600082601f830112610e4257600080fd5b610a6d83833560208501610c20565b600080600080600060a08688031215610e6957600080fd5b610e7286610b69565b9450610e8060208701610b69565b9350604086013567ffffffffffffffff80821115610e9d57600080fd5b610ea989838a01610dc6565b94506060880135915080821115610ebf57600080fd5b610ecb89838a01610dc6565b93506080880135915080821115610ee157600080fd5b50610eee88828901610e31565b9150509295509295909350565b60008060408385031215610f0e57600080fd5b823567ffffffffffffffff80821115610f2657600080fd5b818501915085601f830112610f3a57600080fd5b81356020610f4a610de783610da2565b82815260059290921b84018101918181019089841115610f6957600080fd5b948201945b83861015610f8e57610f7f86610b69565b82529482019490820190610f6e565b96505086013592505080821115610fa457600080fd5b50610fb185828601610dc6565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015610ff357835183529284019291840191600101610fd7565b50909695505050505050565b6000806040838503121561101257600080fd5b61101b83610b69565b91506020830135801515811461103057600080fd5b809150509250929050565b6000806040838503121561104e57600080fd5b61105783610b69565b915061106560208401610b69565b90509250929050565b600080600080600060a0868803121561108657600080fd5b61108f86610b69565b945061109d60208701610b69565b93506040860135925060608601359150608086013567ffffffffffffffff8111156110c757600080fd5b610eee88828901610e31565b6000602082840312156110e557600080fd5b610a6d82610b69565b600181811c9082168061110257607f821691505b60208210810361112257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601260045260246000fd5b60008261114d5761114d611128565b500690565b634e487b7160e01b600052601160045260246000fd5b60008261117757611177611128565b500490565b808201808211156103af576103af611152565b818103818111156103af576103af611152565b634e487b7160e01b600052603260045260246000fd5b6000600182016111ca576111ca611152565b5060010190565b601f82111561121b57600081815260208120601f850160051c810160208610156111f85750805b601f850160051c820191505b8181101561121757828155600101611204565b5050505b505050565b815167ffffffffffffffff81111561123a5761123a610bd9565b61124e8161124884546110ee565b846111d1565b602080601f831160018114611283576000841561126b5750858301515b600019600386901b1c1916600185901b178555611217565b600085815260208120601f198616915b828110156112b257888601518255948401946001909101908401611293565b50858210156112d05787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220a1fd79486077cd2d189521dfff0694a4f5b437be76ff1840c9f5deee9ce3a90564736f6c634300081300330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002b68747470733a2f2f6d6f6f6e6c696e67736d657461646174612e73616e6c656f2e6465762f312e6a736f6e000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b85780638da5cb5b1161007c5780638da5cb5b1461026f57806395d89b4114610280578063a22cb46514610288578063e985e9c514610296578063f242432a146102ac578063f2fde38b146102ba57600080fd5b80634e1273f41461022f578063514fd4a31461024f578063715018a6146102575780637d0907af1461025f57806389a890021461026757600080fd5b80630e89341c116100ff5780630e89341c146101b757806325319135146101ca5780632785bf16146101de5780632eb2c2d6146101f15780633270353b1461020457600080fd5b8062fdd58e1461013b57806301ffc9a71461016157806302fe530514610184578063047fc9aa1461019957806306fdde03146101a2575b600080fd5b61014e610149366004610b85565b6102cd565b6040519081526020015b60405180910390f35b61017461016f366004610baf565b6103b5565b6040519015158152602001610158565b610197610192366004610c78565b610405565b005b61014e60025481565b6101aa610419565b6040516101589190610cc9565b6101aa6101c5366004610d17565b6104a7565b60015461017490600160a01b900460ff1681565b6101976101ec366004610d30565b61053b565b6101976101ff366004610e51565b6106e4565b610217610212366004610d17565b6106fd565b6040516001600160a01b039091168152602001610158565b61024261023d366004610efb565b610792565b6040516101589190610fbb565b61014e6108bc565b6101976108ea565b6101976108fe565b61014e600181565b6001546001600160a01b0316610217565b6101aa610915565b6101976101ff366004610fff565b6101746102a436600461103b565b600092915050565b6101976101ff36600461106e565b6101976102c83660046110d3565b610922565b60006001600160a01b03831661033d5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b6001821461038d5760405162461bcd60e51b815260206004820152601960248201527f455243313135353a20696e76616c696420746f6b656e204944000000000000006044820152606401610334565b61039b836000600254610998565b6103a65760006103a9565b60015b60ff1690505b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806103e657506001600160e01b031982166303a24d0760e21b145b806103af57506301ffc9a760e01b6001600160e01b03198316146103af565b61040d610a74565b61041681610ace565b50565b60038054610426906110ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610452906110ee565b801561049f5780601f106104745761010080835404028352916020019161049f565b820191906000526020600020905b81548152906001019060200180831161048257829003601f168201915b505050505081565b6060600080546104b6906110ee565b80601f01602080910402602001604051908101604052809291908181526020018280546104e2906110ee565b801561052f5780601f106105045761010080835404028352916020019161052f565b820191906000526020600020905b81548152906001019060200180831161051257829003601f168201915b50505050509050919050565b610543610a74565b600154600160a01b900460ff1661059c5760405162461bcd60e51b815260206004820152601960248201527f41697264726f7020686173206265656e2064697361626c6564000000000000006044820152606401610334565b6105a760148261113e565b156105f45760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420616464726573736573206c656e67746800000000000000006044820152606401610334565b600554600654610605601484611168565b60026000828254610616919061117c565b9250508190555060148304828354833360007fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f626001604052600160605260005b878110156106c257601481028c013560601c80848685604080a4600b861180156106a4576008600b1990970196870282811c9890981789556001909801976101009790970381901b966106b8565b81600888026060031b881797506014870196505b5050600101610656565b5050505060008111156106d3578183555b600592909255506006555050505050565b6040516358b2164f60e11b815260040160405180910390fd5b60008061072b60017f2f2d49a864067bf224884f35cb3a1b5a61c91f0dbeccd1edd8aa755c2bc29b6661118f565b602060148502908104808301546008601f9093169283021b9450919250829190600c8111801561078157600183850101546060600b1984016008029081019790971c871b610100979097031c9590951794610788565b8560601c95505b5050505050919050565b606081518351146107f75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610334565b6000835167ffffffffffffffff81111561081357610813610bd9565b60405190808252806020026020018201604052801561083c578160200160208202803683370190505b50905060005b84518110156108b457610887858281518110610860576108606111a2565b602002602001015185838151811061087a5761087a6111a2565b60200260200101516102cd565b828281518110610899576108996111a2565b60209081029190910101526108ad816111b8565b9050610842565b509392505050565b6108e760017f2f2d49a864067bf224884f35cb3a1b5a61c91f0dbeccd1edd8aa755c2bc29b6661118f565b81565b6108f2610a74565b6108fc6000610b17565b565b610906610a74565b6001805460ff60a01b19169055565b60048054610426906110ee565b61092a610a74565b6001600160a01b03811661098f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610334565b61041681610b17565b600083816109a6858561118f565b9050806000036109bb57600092505050610a6d565b806001036109e9576109cc856106fd565b6001600160a01b0316866001600160a01b03161492505050610a6d565b60006109f6600283611168565b610a00908761117c565b90506000610a0d826106fd565b9050836001600160a01b0316816001600160a01b03161115610a3f57610a34888884610998565b945050505050610a6d565b836001600160a01b0316816001600160a01b03161015610a6457610a34888388610998565b60019450505050505b9392505050565b6001546001600160a01b031633146108fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610334565b6000610ada8282611220565b5060017f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b82604051610b0c9190610cc9565b60405180910390a250565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80356001600160a01b0381168114610b8057600080fd5b919050565b60008060408385031215610b9857600080fd5b610ba183610b69565b946020939093013593505050565b600060208284031215610bc157600080fd5b81356001600160e01b031981168114610a6d57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610c1857610c18610bd9565b604052919050565b600067ffffffffffffffff831115610c3a57610c3a610bd9565b610c4d601f8401601f1916602001610bef565b9050828152838383011115610c6157600080fd5b828260208301376000602084830101529392505050565b600060208284031215610c8a57600080fd5b813567ffffffffffffffff811115610ca157600080fd5b8201601f81018413610cb257600080fd5b610cc184823560208401610c20565b949350505050565b600060208083528351808285015260005b81811015610cf657858101830151858201604001528201610cda565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610d2957600080fd5b5035919050565b60008060208385031215610d4357600080fd5b823567ffffffffffffffff80821115610d5b57600080fd5b818501915085601f830112610d6f57600080fd5b813581811115610d7e57600080fd5b866020828501011115610d9057600080fd5b60209290920196919550909350505050565b600067ffffffffffffffff821115610dbc57610dbc610bd9565b5060051b60200190565b600082601f830112610dd757600080fd5b81356020610dec610de783610da2565b610bef565b82815260059290921b84018101918181019086841115610e0b57600080fd5b8286015b84811015610e265780358352918301918301610e0f565b509695505050505050565b600082601f830112610e4257600080fd5b610a6d83833560208501610c20565b600080600080600060a08688031215610e6957600080fd5b610e7286610b69565b9450610e8060208701610b69565b9350604086013567ffffffffffffffff80821115610e9d57600080fd5b610ea989838a01610dc6565b94506060880135915080821115610ebf57600080fd5b610ecb89838a01610dc6565b93506080880135915080821115610ee157600080fd5b50610eee88828901610e31565b9150509295509295909350565b60008060408385031215610f0e57600080fd5b823567ffffffffffffffff80821115610f2657600080fd5b818501915085601f830112610f3a57600080fd5b81356020610f4a610de783610da2565b82815260059290921b84018101918181019089841115610f6957600080fd5b948201945b83861015610f8e57610f7f86610b69565b82529482019490820190610f6e565b96505086013592505080821115610fa457600080fd5b50610fb185828601610dc6565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b81811015610ff357835183529284019291840191600101610fd7565b50909695505050505050565b6000806040838503121561101257600080fd5b61101b83610b69565b91506020830135801515811461103057600080fd5b809150509250929050565b6000806040838503121561104e57600080fd5b61105783610b69565b915061106560208401610b69565b90509250929050565b600080600080600060a0868803121561108657600080fd5b61108f86610b69565b945061109d60208701610b69565b93506040860135925060608601359150608086013567ffffffffffffffff8111156110c757600080fd5b610eee88828901610e31565b6000602082840312156110e557600080fd5b610a6d82610b69565b600181811c9082168061110257607f821691505b60208210810361112257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601260045260246000fd5b60008261114d5761114d611128565b500690565b634e487b7160e01b600052601160045260246000fd5b60008261117757611177611128565b500490565b808201808211156103af576103af611152565b818103818111156103af576103af611152565b634e487b7160e01b600052603260045260246000fd5b6000600182016111ca576111ca611152565b5060010190565b601f82111561121b57600081815260208120601f850160051c810160208610156111f85750805b601f850160051c820191505b8181101561121757828155600101611204565b5050505b505050565b815167ffffffffffffffff81111561123a5761123a610bd9565b61124e8161124884546110ee565b846111d1565b602080601f831160018114611283576000841561126b5750858301515b600019600386901b1c1916600185901b178555611217565b600085815260208120601f198616915b828110156112b257888601518255948401946001909101908401611293565b50858210156112d05787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220a1fd79486077cd2d189521dfff0694a4f5b437be76ff1840c9f5deee9ce3a90564736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002b68747470733a2f2f6d6f6f6e6c696e67736d657461646174612e73616e6c656f2e6465762f312e6a736f6e000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : uri_ (string): https://moonlingsmetadata.sanleo.dev/1.json
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 000000000000000000000000000000000000000000000000000000000000002b
Arg [2] : 68747470733a2f2f6d6f6f6e6c696e67736d657461646174612e73616e6c656f
Arg [3] : 2e6465762f312e6a736f6e000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.