@lukso/lsp8-contracts
Version:
Package for the LSP8 Identifiable Digital Asset standard
1,706 lines • 131 kB
JSON
{
"_format": "hh3-artifact-1",
"contractName": "LSP8CustomizableToken",
"sourceName": "contracts/presets/LSP8CustomizableToken.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
},
{
"internalType": "address",
"name": "newOwner_",
"type": "address"
},
{
"internalType": "uint256",
"name": "lsp4TokenType_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "lsp8TokenIdFormat_",
"type": "uint256"
},
{
"components": [
{
"internalType": "bool",
"name": "isMintable",
"type": "bool"
},
{
"internalType": "bytes32[]",
"name": "initialMintTokenIds",
"type": "bytes32[]"
}
],
"internalType": "struct LSP8MintableParams",
"name": "mintableParams",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "tokenBalanceCap",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenSupplyCap",
"type": "uint256"
}
],
"internalType": "struct LSP8CappedParams",
"name": "cappedParams",
"type": "tuple"
},
{
"components": [
{
"internalType": "uint256",
"name": "transferLockStart",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "transferLockEnd",
"type": "uint256"
}
],
"internalType": "struct LSP8NonTransferableParams",
"name": "nonTransferableParams",
"type": "tuple"
},
{
"components": [
{
"internalType": "bool",
"name": "isRevokable",
"type": "bool"
}
],
"internalType": "struct LSP8RevokableParams",
"name": "revokableParams",
"type": "tuple"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [],
"name": "AccessControlCannotSetAdminForDefaultAdminRole",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [],
"name": "ERC725Y_DataKeysValuesEmptyArray",
"type": "error"
},
{
"inputs": [],
"name": "ERC725Y_DataKeysValuesLengthMismatch",
"type": "error"
},
{
"inputs": [],
"name": "ERC725Y_MsgValueDisallowed",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "storedData",
"type": "bytes"
}
],
"name": "InvalidExtensionAddress",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "InvalidFunctionSelector",
"type": "error"
},
{
"inputs": [],
"name": "LSP4TokenNameNotEditable",
"type": "error"
},
{
"inputs": [],
"name": "LSP4TokenSymbolNotEditable",
"type": "error"
},
{
"inputs": [],
"name": "LSP4TokenTypeNotEditable",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "callIndex",
"type": "uint256"
}
],
"name": "LSP8BatchCallFailed",
"type": "error"
},
{
"inputs": [],
"name": "LSP8CannotSendToAddressZero",
"type": "error"
},
{
"inputs": [],
"name": "LSP8CannotUpdateTransferLockPeriod",
"type": "error"
},
{
"inputs": [],
"name": "LSP8CannotUseAddressZeroAsOperator",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "currentBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokenBalanceCap",
"type": "uint256"
}
],
"name": "LSP8CappedBalanceExceeded",
"type": "error"
},
{
"inputs": [],
"name": "LSP8CappedSupplyCannotMintOverCap",
"type": "error"
},
{
"inputs": [],
"name": "LSP8InvalidTransferBatch",
"type": "error"
},
{
"inputs": [],
"name": "LSP8InvalidTransferLockPeriod",
"type": "error"
},
{
"inputs": [],
"name": "LSP8MintDisabled",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "LSP8NonExistentTokenId",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "LSP8NonExistingOperator",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "caller",
"type": "address"
}
],
"name": "LSP8NotTokenOperator",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenOwner",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "caller",
"type": "address"
}
],
"name": "LSP8NotTokenOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenReceiver",
"type": "address"
}
],
"name": "LSP8NotifyTokenReceiverContractMissingLSP1Interface",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenReceiver",
"type": "address"
}
],
"name": "LSP8NotifyTokenReceiverIsEOA",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "LSP8OperatorAlreadyAuthorized",
"type": "error"
},
{
"inputs": [],
"name": "LSP8RevokableFeatureDisabled",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOwner",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "LSP8RevokeOperatorNotAuthorized",
"type": "error"
},
{
"inputs": [],
"name": "LSP8TokenAlreadyTransferable",
"type": "error"
},
{
"inputs": [],
"name": "LSP8TokenContractCannotHoldValue",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "LSP8TokenIdAlreadyMinted",
"type": "error"
},
{
"inputs": [],
"name": "LSP8TokenIdFormatNotEditable",
"type": "error"
},
{
"inputs": [],
"name": "LSP8TokenIdsDataEmptyArray",
"type": "error"
},
{
"inputs": [],
"name": "LSP8TokenIdsDataLengthMismatch",
"type": "error"
},
{
"inputs": [],
"name": "LSP8TokenOwnerCannotBeOperator",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "oldOwner",
"type": "address"
},
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "LSP8TokenOwnerChanged",
"type": "error"
},
{
"inputs": [],
"name": "LSP8TransferDisabled",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "functionSelector",
"type": "bytes4"
}
],
"name": "NoExtensionFoundForFunctionSelector",
"type": "error"
},
{
"inputs": [],
"name": "OwnableCannotSetZeroAddressAsOwner",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "dataKey",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes",
"name": "dataValue",
"type": "bytes"
}
],
"name": "DataChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "MintingStatusChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes",
"name": "operatorNotificationData",
"type": "bytes"
}
],
"name": "OperatorAuthorizationChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bool",
"name": "notified",
"type": "bool"
},
{
"indexed": false,
"internalType": "bytes",
"name": "operatorNotificationData",
"type": "bytes"
}
],
"name": "OperatorRevoked",
"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": "bool",
"name": "enabled",
"type": "bool"
}
],
"name": "RevokableStatusChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "dataKey",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes",
"name": "dataValue",
"type": "bytes"
}
],
"name": "TokenIdDataChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bool",
"name": "force",
"type": "bool"
},
{
"indexed": false,
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "start",
"type": "uint256"
},
{
"indexed": true,
"internalType": "uint256",
"name": "end",
"type": "uint256"
}
],
"name": "TransferLockPeriodChanged",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MINTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "NON_TRANSFERABLE_BYPASS_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "REVOKER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "UNCAPPED_BALANCE_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "operatorNotificationData",
"type": "bytes"
}
],
"name": "authorizeOperator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes[]",
"name": "data",
"type": "bytes[]"
}
],
"name": "batchCalls",
"outputs": [
{
"internalType": "bytes[]",
"name": "results",
"type": "bytes[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "disableMinting",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "disableRevokable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "dataKey",
"type": "bytes32"
}
],
"name": "getData",
"outputs": [
{
"internalType": "bytes",
"name": "dataValue",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "dataKeys",
"type": "bytes32[]"
}
],
"name": "getDataBatch",
"outputs": [
{
"internalType": "bytes[]",
"name": "dataValues",
"type": "bytes[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "tokenIds",
"type": "bytes32[]"
},
{
"internalType": "bytes32[]",
"name": "dataKeys",
"type": "bytes32[]"
}
],
"name": "getDataBatchForTokenIds",
"outputs": [
{
"internalType": "bytes[]",
"name": "dataValues",
"type": "bytes[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "dataKey",
"type": "bytes32"
}
],
"name": "getDataForTokenId",
"outputs": [
{
"internalType": "bytes",
"name": "dataValue",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "getOperatorsOf",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "getRoleMember",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleMemberCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleMembers",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isMintable",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "isOperatorFor",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isRevokable",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isTransferable",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "makeTransferable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bool",
"name": "force",
"type": "bool"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "revoke",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bool",
"name": "notify",
"type": "bool"
},
{
"internalType": "bytes",
"name": "operatorNotificationData",
"type": "bytes"
}
],
"name": "revokeOperator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "rolesOf",
"outputs": [
{
"internalType": "bytes32[]",
"name": "",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "dataKey",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "dataValue",
"type": "bytes"
}
],
"name": "setData",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "dataKeys",
"type": "bytes32[]"
},
{
"internalType": "bytes[]",
"name": "dataValues",
"type": "bytes[]"
}
],
"name": "setDataBatch",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32[]",
"name": "tokenIds",
"type": "bytes32[]"
},
{
"internalType": "bytes32[]",
"name": "dataKeys",
"type": "bytes32[]"
},
{
"internalType": "bytes[]",
"name": "dataValues",
"type": "bytes[]"
}
],
"name": "setDataBatchForTokenIds",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "dataKey",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "dataValue",
"type": "bytes"
}
],
"name": "setDataForTokenId",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "adminRole",
"type": "bytes32"
}
],
"name": "setRoleAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tokenBalanceCap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenOwner",
"type": "address"
}
],
"name": "tokenIdsOf",
"outputs": [
{
"internalType": "bytes32[]",
"name": "",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
}
],
"name": "tokenOwnerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tokenSupplyCap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bytes32",
"name": "tokenId",
"type": "bytes32"
},
{
"internalType": "bool",
"name": "force",
"type": "bool"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "transfer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "from",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "to",
"type": "address[]"
},
{
"internalType": "bytes32[]",
"name": "tokenId",
"type": "bytes32[]"
},
{
"internalType": "bool[]",
"name": "force",
"type": "bool[]"
},
{
"internalType": "bytes[]",
"name": "data",
"type": "bytes[]"
}
],
"name": "transferBatch",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "transferLockEnabled",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "transferLockEnd",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "transferLockStart",
"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": [
{
"internalType": "uint256",
"name": "newTransferLockStart",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "newTransferLockEnd",
"type": "uint256"
}
],
"name": "updateTransferLockPeriod",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60c060405234801561000f575f5ffd5b5060405161677038038061677083398101604081905261002e916112cb565b8051825160208085015186519187015188519192918e8e8e8e8e84848484816100563361035c565b6001600160a01b03811661007d576040516306b620db60e21b815260040160405180910390fd5b61008681610368565b506040805180820190915260048152632936598960e21b60208201526100cd907feafec4d89fa9619884b60000a4d96624a38f7ac2d8d9a604ecf07c12c77e480c906103b7565b6100f77fdeba1e292f8ba88238e10ab3c7f88bd4be4fac56cad5194b6ecceaf653468af1856103b7565b6101217f2f0a68ab07768e01943a599e73362a0e17a63a72e94dd2e384d2c1d4db932756846103b7565b6040805160208101839052610168917fe0261fa95db2eb3b5439bd033cda66d56b96f92f243a8228fd87550ed7bdfdb3910160408051601f198184030181529190526103b7565b505060408051602081018590526101b393507ff675e9361af1c1664c1868cfa3eb97672d6b1a513aa5b81dec34c9ee330e818d92500160408051601f1981840301815291905261040b565b506101d593505f92506101d09150505f546001600160a01b031690565b6104cb565b6009805460ff19168215159081179091556040517f41f386d449eec03c1c3b75bbba9c18df70aa19779ff47f68eab4b6a66fb399d4905f90a28015610236576102365f5160206167505f395f51905f526101d05f546001600160a01b031690565b5060805260a08190528015610267576102675f5160206167305f395f51905f526101d05f546001600160a01b031690565b508015806102755750818110155b61029257604051634f19c9bf60e11b815260040160405180910390fd5b600a829055600b819055600c805460ff19166001179055604051819083907f938e6c55d25d181f86d200da26970f962ec97adb02dfa0452811fb9073573ebe905f90a36102f75f5160206167105f395f51905f526101d05f546001600160a01b031690565b5050600c8054821580156101000261ff001990921691909117909155610339576103395f5160206166f05f395f51905f526101d05f546001600160a01b031690565b5061034e87856020015161054960201b60201c565b505050505050505050611674565b610365816105d7565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8281526001602052604090206103ce828261142e565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b2826040516103ff9190611516565b60405180910390a25050565b7f2145e1d6d074577dc71ef54c3807742b41b053a9352ae6b491331509acb9750f820161044b576040516385c169bd60e01b815260040160405180910390fd5b7fd0f59754f88971fe6bc5a6618cc9d5f1e859c58d16b22d1c7b2d3e2b246cd8aa820161048b57604051630eceab6760e31b815260040160405180910390fd5b7f1fd9e056a24d14c4abc642fcc325992a946906d0dbc57dd70278aaf12842024d82016103b757604051634ef6d7fb60e01b815260040160405180910390fd5b5f8281526007602052604081206104e29083610678565b90508015610544576001600160a01b0382165f90815260086020526040902061050b9084610695565b5060405133906001600160a01b0384169085907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d905f90a45b505050565b5f61055360805190565b90508015801590610583578251821080156105815760405163e8ba229160e01b815260040160405180910390fd5b505b5f5b83518110156105d0576105c8858583815181106105a4576105a4611528565b6020026020010151600160405180602001604052805f8152506106a060201b60201c565b600101610585565b5050505050565b6105ee5f5160206166f05f395f51905f525f610826565b6105f78161088b565b5f61060e5f5160206166f05f395f51905f526108ab565b90505f5b8151811015610544575f82828151811061062e5761062e611528565b60200260200101519050836001600160a01b0316816001600160a01b0316036106575750610670565b61066e5f5160206166f05f395f51905f52826108c4565b505b600101610612565b5f61068c836001600160a01b038416610941565b90505b92915050565b5f61068c8383610941565b6001600160a01b0384166106c7576040516324ecef4d60e01b815260040160405180910390fd5b5f8381526003602052604090205483906001600160a01b03161561070a576040516334c7b51160e01b815260040161070191815260200190565b60405180910390fd5b506107185f8585858561098d565b5f8381526003602052604090205483906001600160a01b031615610752576040516334c7b51160e01b815260040161070191815260200190565b5060025f815461076190611550565b909155506001600160a01b0384165f9081526004602052604090206107869084610695565b505f8381526003602052604080822080546001600160a01b0319166001600160a01b03881690811790915590518592907fb333c813a7426a7a11e2b190cad52c44119421594b47f6f32ace6d8c7207b2bf906107e790339088908890611568565b60405180910390a45f335f86868560405160200161080995949392919061159c565b60408051601f1981840301815291905290506105d085848361099a565b816108445760405163d0dc904b60e01b815260040160405180910390fd5b5f82815260066020526040808220805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108a25f5160206167105f395f51905f525f610826565b61036581610aa3565b5f81815260076020526040902060609061068f90610ac3565b5f8281526007602052604081206108db9083610ad6565b90508015610544576001600160a01b0382165f9081526008602052604090206109049084610aea565b5060405133906001600160a01b0384169085907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b905f90a4505050565b5f81815260018301602052604081205461098657508154600181810184555f84815260208082209093018490558454848252828601909352604090209190915561068f565b505f61068f565b6105d08585858585610af5565b6109ab83631aed5a8560e21b610b0f565b15610a4657604051631aed5a8560e21b81526001600160a01b03841690636bb56a14906109fe907f0b084a55ebf70fd3c06fd755269dac2212c4d3f0f4d09079780bfa50c1b2984d9085906004016115d6565b5f604051808303815f875af1158015610a19573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610a4091908101906115f6565b50505050565b81610544576001600160a01b0383163b15610a7f57604051634349776d60e01b81526001600160a01b0384166004820152602401610701565b604051630317313760e01b81526001600160a01b0384166004820152602401610701565b610aba5f5160206167305f395f51905f525f610826565b61036581610b95565b60605f610acf83610bb5565b9392505050565b5f61068c836001600160a01b038416610c0e565b5f61068c8383610c0e565b610b028585858585610cf1565b6105d08585858585610d0b565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b17815282515f9392849283928392918391908a617530fa92503d91505f519050828015610b7f575060208210155b8015610b8a57505f81115b979650505050505050565b610bac5f5160206167505f395f51905f525f610826565b61036581610d2c565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610c0257602002820191905f5260205f20905b815481526020019060010190808311610bee575b50505050509050919050565b5f8181526001830160205260408120548015610ce8575f610c3060018361163a565b85549091505f90610c439060019061163a565b9050818114610ca2575f865f018281548110610c6157610c61611528565b905f5260205f200154905080875f018481548110610c8157610c81611528565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610cb357610cb361164d565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f90556001935050505061068f565b5f91505061068f565b610cfa84610dbc565b6105d0576105d08585858585610e3c565b610d188585858585610e9d565b6105d085858585856001600160e01b038616565b5f546001600160a01b0316610d4082610368565b6001600160a01b0381165f908152600860205260408120610d6090610ac3565b90505f5b8151811015610a40575f828281518110610d8057610d80611528565b60200260200101519050610d9a81856108c460201b60201c565b6001600160a01b03851615610db357610db381866104cb565b50600101610d64565b5f80356001600160e01b0319166384bfc8eb60e01b148015610dea5750610dea600c54610100900460ff1690565b8015610e085750610e085f5160206166f05f395f51905f5233610eb7565b801561068f57505f546001600160a01b038381169116148061068f575061068f5f5160206166f05f395f51905f5283610eb7565b6001600160a01b0385161580610e5957506001600160a01b038416155b6105d057610e745f5160206167105f395f51905f5286610eb7565b6105d057610e80610ec2565b6105d057604051634d6f20a160e11b815260040160405180910390fd5b610ea684610dbc565b6105d0576105d08585858585610f49565b5f61068c8383611028565b600c545f9060ff16610ed45750600190565b600a54600b54901580159115159082610eeb575080155b15610ef95760019250505090565b81158015610f045750805b15610f155742600b54109250505090565b818015610f20575080155b15610f315742600a54119250505090565b42600a541180610f42575042600b54105b9250505090565b836001600160a01b0316856001600160a01b031603156105d0576001600160a01b0384161580610f8357506001600160a01b03841661dead145b6105d057610f9e5f5160206167305f395f51905f5285610eb7565b6105d0575f610fac60a05190565b905080151580610fbd5750506105d0565b60a051610fc98761103f565b610fd4906001611661565b111586610fe08161103f565b60a05190919261101c576040516339afc44b60e21b81526001600160a01b03909316600484015260248301919091526044820152606401610701565b50505050505050505050565b5f82815260076020526040812061068c9083611063565b6001600160a01b0381165f90815260046020526040812061068f905f61068f825490565b6001600160a01b0381165f908152600183016020526040812054151561068c565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b03811182821017156110ba576110ba611084565b60405290565b604051601f8201601f191681016001600160401b03811182821017156110e8576110e8611084565b604052919050565b5f806001600160401b0384111561110957611109611084565b50601f8301601f191660200161111e816110c0565b915050828152838383011115611132575f5ffd5b8282602083015e5f602084830101529392505050565b5f82601f830112611157575f5ffd5b61068c838351602085016110f0565b80516001600160a01b038116811461117c575f5ffd5b919050565b8051801515811461117c575f5ffd5b5f604082840312156111a0575f5ffd5b6111a8611098565b90506111b382611181565b815260208201516001600160401b038111156111cd575f5ffd5b8201601f810184136111dd575f5ffd5b80516001600160401b038111156111f6576111f6611084565b8060051b611206602082016110c0565b91825260208184018101929081019087841115611221575f5ffd5b6020850194505b83851015611243578451825260209485019490910190611228565b6020860152509295945050505050565b5f60408284031215611263575f5ffd5b61126b611098565b825181526020928301519281019290925250919050565b5f60208284031215611292575f5ffd5b604051602081016001600160401b03811182821017156112b4576112b4611084565b6040529050806112c383611181565b905292915050565b5f5f5f5f5f5f5f5f5f6101608a8c0312156112e4575f5ffd5b89516001600160401b038111156112f9575f5ffd5b6113058c828d01611148565b60208c0151909a5090506001600160401b03811115611322575f5ffd5b61132e8c828d01611148565b98505061133d60408b01611166565b60608b015160808c015160a08d015192995090975095506001600160401b03811115611367575f5ffd5b6113738c828d01611190565b9450506113838b60c08c01611253565b92506113938b6101008c01611253565b91506113a38b6101408c01611282565b90509295985092959850929598565b600181811c908216806113c657607f821691505b6020821081036113e457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561054457805f5260205f20601f840160051c8101602085101561140f5750805b601f840160051c820191505b818110156105d0575f815560010161141b565b81516001600160401b0381111561144757611447611084565b61145b8161145584546113b2565b846113ea565b6020601f82116001811461148d575f83156114765750848201515b5f19600385901b1c1916600184901b1784556105d0565b5f84815260208120601f198516915b828110156114bc578785015182556020948501946001909201910161149c565b50848210156114d957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61068c60208301846114e8565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016115615761156161153c565b5060010190565b6001600160a01b038416815282151560208201526060604082018190525f90611593908301846114e8565b95945050505050565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a0608082018190525f90610b8a908301846114e8565b828152604060208201525f6115ee60408301846114e8565b949350505050565b5f60208284031215611606575f5ffd5b81516001600160401b0381111561161b575f5ffd5b8201601f8101841361162b575f5ffd5b6115ee848251602084016110f0565b8181038181111561068f5761068f61153c565b634e487b7160e01b5f52603160045260245ffd5b8082018082111561068f5761068f61153c565b60805160a0516150466116aa5f395f81816109e101528181613dc801528181613df80152613e3901525f61115b01526150465ff3fe60806040526004361061034d575f3560e01c80637e87632c116101ba578063a3b261f2116100f6578063d547741f11610094578063dedff9c61161006e578063dedff9c614610a95578063e6fc609814610ab4578063ecff3a0c14610ac9578063f2fde38b14610ae2576103d8565b8063d547741f14610a38578063d6c1407c14610a57578063db8c966314610a76576103d8565b8063c282ca78116100d0578063c282ca78146109a0578063ca15c873146109b4578063d1ca0188146109d3578063d539139314610a05576103d8565b8063a3b261f214610943578063af255b6114610962578063be9f0e6f14610981576103d8565b80639010d07c11610163578063979024211161013d57806397902421146108e25780639e045773146108f5578063a217fddf14610911578063a3246ad314610924576103d8565b80639010d07c1461087157806391d148541461089057806394187753146108af576103d8565b806386a10ddd1161019457806386a10ddd146108145780638da5cb5b146108335780638fb057301461085c576103d8565b80637e87632c146107c35780637f23690c146107e257806384bfc8eb146107f5576103d8565b806345e14c46116102895780636963d4381161023257806370a082311161020c57806370a0823114610749578063715018a6146107685780637c4acabf1461077c5780637e5cd5c1146107af576103d8565b80636963d438146106f7578063696fd68c146107165780636c79b70b1461072a576103d8565b8063511b695211610263578063511b6952146106a557806352058d8a146106c457806354f6127f146106d8576103d8565b806345e14c461461064157806346b45af71461066057806349a6078d14610679576103d8565b80632121dc75116102f65780632a3654a4116102d05780632a3654a4146105b85780632de94807146105d75780632f2ff15d1461060357806336568abe14610622576103d8565b80632121dc7514610535578063217b227014610549578063248a9ca31461058d576103d8565b806318160ddd1161032757806318160ddd146104d45780631d26fce6146104e85780631e4e009114610514576103d8565b806301ffc9a71461043357806312318ac41461046757806316e023b3146104a8576103d8565b366103d857345f036103a6576040517fe5099ee300000000000000000000000000000000000000000000000000000000815260040161039d9060208082526004908201525f604082015260600190565b60405180910390fd5b6040517f61f4944200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f3660608282600481101561041b576040517fe5099ee300000000000000000000000000000000000000000000000000000000815260040161039d929190613fe8565b50506104278383610b01565b80519350602001915050f35b34801561043e575f5ffd5b5061045261044d366004614034565b610c96565b6