non-fungible-apps/contracts/deployments/qanet/FleekERC721.json

2505 lines
158 KiB
JSON

{
"buildId": "51265c9b241f9c7af77f823edadaae04",
"timestamp": "6/16/2023, 8:51:33 AM",
"address": "0x1CfD8455F189c56a4FBd81EB7D4118DB04616BA8",
"transactionHash": "0xe5f32d6a2e2ad61ba2681664eebdec69e09bf64f344190acbb149059c6be01dc",
"gasPrice": 1313624425,
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessPointAlreadyExists",
"type": "error"
},
{
"inputs": [],
"name": "AccessPointCreationStatusAlreadySet",
"type": "error"
},
{
"inputs": [],
"name": "AccessPointNotExistent",
"type": "error"
},
{
"inputs": [],
"name": "AccessPointScoreCannotBeLower",
"type": "error"
},
{
"inputs": [],
"name": "ContractIsNotPausable",
"type": "error"
},
{
"inputs": [],
"name": "ContractIsNotPaused",
"type": "error"
},
{
"inputs": [],
"name": "ContractIsPaused",
"type": "error"
},
{
"inputs": [],
"name": "InvalidTokenIdForAccessPoint",
"type": "error"
},
{
"inputs": [],
"name": "MustBeAccessPointOwner",
"type": "error"
},
{
"inputs": [],
"name": "MustBeENSOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "MustBeTokenOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "MustBeTokenVerifier",
"type": "error"
},
{
"inputs": [],
"name": "MustHaveAtLeastOneOwner",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "MustHaveCollectionRole",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint8",
"name": "role",
"type": "uint8"
}
],
"name": "MustHaveTokenRole",
"type": "error"
},
{
"inputs": [
{
"internalType": "bool",
"name": "state",
"type": "bool"
}
],
"name": "PausableIsSetTo",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "requiredValue",
"type": "uint256"
}
],
"name": "RequiredPayment",
"type": "error"
},
{
"inputs": [],
"name": "RoleAlreadySet",
"type": "error"
},
{
"inputs": [],
"name": "ThereIsNoTokenMinted",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"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": false,
"internalType": "enum FleekBilling.Billing",
"name": "key",
"type": "uint8"
},
{
"indexed": false,
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "BillingChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "bool",
"name": "verified",
"type": "bool"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "ChangeAccessPointContentVerify",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "enum FleekAccessPoints.AccessPointCreationStatus",
"name": "status",
"type": "uint8"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "ChangeAccessPointCreationStatus",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "bool",
"name": "verified",
"type": "bool"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "ChangeAccessPointNameVerify",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "score",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "ChangeAccessPointScore",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "enum FleekAccessControl.CollectionRoles",
"name": "role",
"type": "uint8"
},
{
"indexed": true,
"internalType": "address",
"name": "toAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "status",
"type": "bool"
},
{
"indexed": false,
"internalType": "address",
"name": "byAddress",
"type": "address"
}
],
"name": "CollectionRoleChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "address",
"name": "value",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "MetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "value",
"type": "string"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "MetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "uint24",
"name": "value",
"type": "uint24"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "MetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "string[4]",
"name": "value",
"type": "string[4]"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "MetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "key",
"type": "string"
},
{
"indexed": false,
"internalType": "bool",
"name": "value",
"type": "bool"
},
{
"indexed": true,
"internalType": "address",
"name": "triggeredBy",
"type": "address"
}
],
"name": "MetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "NewAccessPoint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "name",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "description",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "externalURL",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "ENS",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "commitHash",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "gitRepository",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "logo",
"type": "string"
},
{
"indexed": false,
"internalType": "uint24",
"name": "color",
"type": "uint24"
},
{
"indexed": false,
"internalType": "bool",
"name": "accessPointAutoApproval",
"type": "bool"
},
{
"indexed": true,
"internalType": "address",
"name": "minter",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "verifier",
"type": "address"
}
],
"name": "NewMint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bool",
"name": "isPausable",
"type": "bool"
},
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "PausableStatusChange",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bool",
"name": "isPaused",
"type": "bool"
},
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "PauseStatusChange",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "RemoveAccessPoint",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "enum FleekAccessControl.TokenRoles",
"name": "role",
"type": "uint8"
},
{
"indexed": true,
"internalType": "address",
"name": "toAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "status",
"type": "bool"
},
{
"indexed": false,
"internalType": "address",
"name": "byAddress",
"type": "address"
}
],
"name": "TokenRoleChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "byAddress",
"type": "address"
}
],
"name": "TokenRolesCleared",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "byAddress",
"type": "address"
}
],
"name": "Withdrawn",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "apName",
"type": "string"
}
],
"name": "addAccessPoint",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "apName",
"type": "string"
}
],
"name": "decreaseAccessPointScore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "apName",
"type": "string"
}
],
"name": "getAccessPointJSON",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getAppData",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum FleekBilling.Billing",
"name": "key",
"type": "uint8"
}
],
"name": "getBilling",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLastTokenId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getToken",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "uint24",
"name": "",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getTokenVerifier",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum FleekAccessControl.CollectionRoles",
"name": "role",
"type": "uint8"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantCollectionRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "enum FleekAccessControl.TokenRoles",
"name": "role",
"type": "uint8"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantTokenRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum FleekAccessControl.CollectionRoles",
"name": "role",
"type": "uint8"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasCollectionRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "enum FleekAccessControl.TokenRoles",
"name": "role",
"type": "uint8"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasTokenRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "apName",
"type": "string"
}
],
"name": "increaseAccessPointScore",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint256[]",
"name": "initialBillings",
"type": "uint256[]"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "apName",
"type": "string"
}
],
"name": "isAccessPointNameVerified",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isPausable",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isPaused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "isTokenVerified",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "externalURL",
"type": "string"
},
{
"internalType": "string",
"name": "ens",
"type": "string"
},
{
"internalType": "string",
"name": "commitHash",
"type": "string"
},
{
"internalType": "string",
"name": "gitRepository",
"type": "string"
},
{
"internalType": "string",
"name": "ipfsHash",
"type": "string"
},
{
"internalType": "string",
"name": "logo",
"type": "string"
},
{
"internalType": "uint24",
"name": "color",
"type": "uint24"
},
{
"internalType": "bool",
"name": "accessPointAutoApproval",
"type": "bool"
},
{
"internalType": "address",
"name": "verifier",
"type": "address"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "apName",
"type": "string"
}
],
"name": "removeAccessPoint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum FleekAccessControl.CollectionRoles",
"name": "role",
"type": "uint8"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeCollectionRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "enum FleekAccessControl.TokenRoles",
"name": "role",
"type": "uint8"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeTokenRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_apAutoApproval",
"type": "bool"
}
],
"name": "setAccessPointAutoApproval",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"internalType": "bool",
"name": "verified",
"type": "bool"
}
],
"name": "setAccessPointContentVerify",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"internalType": "bool",
"name": "verified",
"type": "bool"
}
],
"name": "setAccessPointNameVerify",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "apName",
"type": "string"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAccessPoint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum FleekBilling.Billing",
"name": "key",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "setBilling",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "pausable",
"type": "bool"
}
],
"name": "setPausable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_commitHash",
"type": "string"
},
{
"internalType": "string",
"name": "_gitRepository",
"type": "string"
},
{
"internalType": "string",
"name": "_ipfsHash",
"type": "string"
},
{
"internalType": "string",
"name": "_domain",
"type": "string"
}
],
"name": "setTokenBuild",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint24",
"name": "_tokenColor",
"type": "uint24"
}
],
"name": "setTokenColor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenDescription",
"type": "string"
}
],
"name": "setTokenDescription",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenENS",
"type": "string"
}
],
"name": "setTokenENS",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenExternalURL",
"type": "string"
}
],
"name": "setTokenExternalURL",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenLogo",
"type": "string"
}
],
"name": "setTokenLogo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenLogo",
"type": "string"
},
{
"internalType": "uint24",
"name": "_tokenColor",
"type": "uint24"
}
],
"name": "setTokenLogoAndColor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenName",
"type": "string"
}
],
"name": "setTokenName",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bool",
"name": "verified",
"type": "bool"
}
],
"name": "setTokenVerified",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "verifier",
"type": "address"
}
],
"name": "setTokenVerifier",
"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": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60808060405234620000975760cc549060ff8260081c16151560011462000080575061ff0019166101001760cc556040513381526001907f959581ef17eb8c8936ef9832169bc89dbcd1358765adca8ca81f28b416bb5efa90602090a26200006662000148565b620000706200009d565b604051615c429081620001c38239f35b632e15c5c160e21b81526001600482015260249150fd5b50600080fd5b60005460ff8160081c16620000f15760ff80821610620000ba5750565b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1565b505060405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b60cc5460ff8116620001ae5760ff8160081c16156200019a5760019060ff19161760cc5560007f07e8f74f605213c41c1a057118d86bca5540e9cf52c351026d0d65e46421aa1a6020604051338152a2565b5050604051635970d9f560e11b8152600490fd5b50506040516306d39fcd60e41b8152600490fdfe6040608081526004361015610015575b50600080fd5b600090813560e01c806301468deb1461090657806301ffc9a7146108ea57806302dba24d146108ce57806306fdde03146108b2578063081812fc14610896578063095ea7b31461087e5780630a212d2f1461086657806323b872dd1461084e578063246a908b1461083657806327dc5cec1461081a5780632d957aad14610802578063355c5561146107db5780633ccfd60b146107c45780633d01ff4d146107975780633e2332051461077f5780633f4ba83a1461076857806342842e0e1461075057806342966c681461073957806342e44bbf1461072157806349aa155e146107095780635aa6ab3b146106f15780636352211e146106d557806370a08231146106b957806372c299c414610684578063736d323a1461066d5780637469a03b1461065657806378278cca1461063e57806383c4c00d146106135780638456cb59146105fc5780638a2e25be146105e45780638c3c0a44146105cc57806394ec65c5146105b557806395d89b4114610599578063a09a160114610569578063a22cb46514610551578063a27d0b2714610539578063a397c83014610522578063a7ef6a9714610507578063aad045a2146104ef578063b187bd26146104c3578063b20b94f1146104ab578063b30437a014610498578063b42dbe3814610438578063b88d4fde1461041d578063b948a3c514610405578063ba4c458a146103ed578063c87b56dd146103c6578063cdb0e89e146103ae578063d7a75be114610392578063e4b50cb814610362578063e94472501461033e578063e985e9c5146102e6578063eb5fd26b146102ce578063f4fe5f0c1461029d5763f93151771461027f575061000f565b346102995761029661029036610be4565b90613741565b51f35b5080fd5b5034610299576102ca91506102b96102b436610a47565b6146b7565b905190151581529081906020820190565b0390f35b5034610299576102966102e03661120a565b90613e4b565b5034610299576102ca91506102b9610337610320610303366111f2565b6001600160a01b039091166000908152606a602052604090209091565b9060018060a01b0316600052602052604060002090565b5460ff1690565b5034610299576102ca91506102b961033761032061035b36610c4d565b9190611d21565b5034610299576102ca915061037e61037936610a47565b6134bd565b949795969390939291925197889788611182565b5034610299576102ca91506102b96103a936610c23565b611f77565b5034610299576102966103c036610be4565b906139de565b5034610299576102ca91506103e26103dd36610a47565b612ffa565b905191829182610a36565b5034610299576102966103ff366110c1565b9161211d565b50346102995761029661041736610be4565b90613cd2565b50346102995761029661042f36611067565b9291909161184a565b5034610299576102ca91506102b96103376104936103206104583661094d565b939091610484610472826000526099602052604060002090565b5491600052609a602052604060002090565b90600052602052604060002090565b611d5d565b506102966104a536610be4565b906146ef565b5034610299576102966104bd36610e87565b90614c34565b5034610299576102ca91506104d7366109ce565b60cc54905160ff909116151581529081906020820190565b50346102995761029661050136610ec2565b90614a8f565b50346102995761029661051936610fe4565b9392909261406b565b50346102995761029661053436610c23565b61208e565b50346102995761029661054b3661094d565b91614eb6565b50346102995761029661056336610fcc565b90611696565b5034610299576102ca915061057d366109ce565b60cc54905160089190911c60ff16151581529081906020820190565b5034610299576102ca91506105ad366109ce565b6103e2611499565b5034610299576102966105c736610c23565b611fbf565b5034610299576102966105de36610c4d565b90614fc5565b5034610299576102966105f636610f8c565b91614b38565b50346102995761060b366109ce565b61029661516f565b5034610299576102ca9150610627366109ce565b61062f613625565b90519081529081906020820190565b50346102995761029661065036610f59565b91613923565b50346102995761029661066836610c23565b6149ab565b50346102995761029661067f36610f3d565b615238565b5034610299576102ca91506106a061069b36610a47565b614500565b90516001600160a01b0390911681529081906020820190565b5034610299576102ca915061062f6106d036610f25565b61122d565b5034610299576102ca91506106a06106ec36610a47565b6112f3565b50346102995761029661070336610ee2565b91613f08565b50346102995761029661071b36610ec2565b9061453f565b50346102995761029661073336610e87565b90614d27565b50346102995761029661074b36610a47565b6141e8565b50346102995761029661076236610a94565b91611810565b503461029957610777366109ce565b6102966151db565b50346102995761029661079136610e6f565b906152ae565b5034610299576102ca91506107b36107ae36610a47565b61356c565b929593949190915195869586610e14565b5034610299576107d3366109ce565b6102966152c0565b506102ca915061062f6107ed36610cc4565b9b9a909a999199989298979397969496612913565b50346102995761029661081436610c4d565b90614dc7565b5034610299576102ca91506103e261083136610c23565b611dc1565b50346102995761029661084836610be4565b90613b54565b50346102995761029661086036610a94565b916117c2565b50346102995761029661087836610a78565b906143ef565b50346102995761029661089036610a59565b90611532565b5034610299576102ca91506106a06108ad36610a47565b611658565b5034610299576102ca91506108c6366109ce565b6103e26113e2565b5034610299576102ca915061062f6108e5366109b6565b612103565b5034610299576102ca91506102b961090136610994565b613652565b5034610299576102966109183661094d565b916150a6565b6001600160a01b038116141561000f57565b6004359061093d8261091e565b565b610164359061093d8261091e565b606090600319011261000f5760043590602435600181101561097957906044356109768161091e565b90565b505050600080fd5b6001600160e01b03198116141561000f57565b602090600319011261000f5760043561097681610981565b6002111561000f57565b602090600319011261000f57600435610976816109ac565b600090600319011261000f57565b918091926000905b8282106109fc5750116109f5575050565b6000910152565b915080602091830151818601520182916109e4565b90602091610a2a815180928185528580860191016109dc565b601f01601f1916010190565b906020610976928181520190610a11565b602090600319011261000f5760043590565b604090600319011261000f57600435610a718161091e565b9060243590565b604090600319011261000f57600435906024356109768161091e565b606090600319011261000f57600435610aac8161091e565b90602435610ab98161091e565b9060443590565b50634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b03821117610af257604052565b610afa610ac0565b604052565b90601f801991011681019081106001600160401b03821117610af257604052565b60405190608082018281106001600160401b03821117610af257604052565b6040519060c082018281106001600160401b03821117610af257604052565b6020906001600160401b038111610b7b575b601f01601f19160190565b610b83610ac0565b610b70565b929192610b9482610b5e565b91610ba26040519384610aff565b829481845281830111610bbf578281602093846000960137010152565b5050505050600080fd5b9080601f830112156109795781602061097693359101610b88565b906040600319830112610c1c5760043591602435906001600160401b038211610c135761097691600401610bc9565b50505050600080fd5b5050600080fd5b6020600319820112610c1c57600435906001600160401b0382116109795761097691600401610bc9565b604090600319011261000f57600435610c65816109ac565b906024356109768161091e565b9181601f84011215610979578235916001600160401b038311610c13576020838186019501011161097957565b610124359062ffffff8216821415610c1c57565b6101443590811515821415610c1c57565b90610180600319830112610c1c57610cda610930565b91602435906001600160401b03808311610bbf57610cfc826004948501610bc9565b93604435828111610e085783610d13918601610bc9565b93606435838111610dfb5784610d2a918301610bc9565b93608435848111610ded5781610d41918401610c72565b9490949360a435828111610ddd5783610d5b918601610bc9565b9360c435838111610dcc5784610d72918301610bc9565b9360e435848111610dba5781610d89918401610bc9565b9361010435908111610dba57610d9f9201610bc9565b90610da8610c9f565b90610db1610cb3565b9061097661093f565b50505050505050505050505050600080fd5b505050505050505050505050600080fd5b5050505050505050505050600080fd5b505050505050505050600080fd5b5050505050505050600080fd5b50505050505050600080fd5b93906109769593610e45610e6194610e37610e539460a08a5260a08a0190610a11565b9088820360208a0152610a11565b908682036040880152610a11565b908482036060860152610a11565b916080818403910152610a11565b604090600319011261000f57600435610a71816109ac565b6040600319820112610c1c57600435906001600160401b03821161097957610eb191600401610bc9565b906024358015158114156109795790565b604090600319011261000f57600435906024358015158114156109795790565b906060600319830112610c1c5760043591602435906001600160401b038211610c1357610f1191600401610bc9565b9060443562ffffff8116811415610c135790565b602090600319011261000f576004356109768161091e565b602090600319011261000f57600435801515811415610c1c5790565b906040600319830112610c1c5760043591602435906001600160401b038211610c1357610f8891600401610c72565b9091565b906060600319830112610c1c5760043591602435906001600160401b038211610c1357610fbb91600401610bc9565b90604435801515811415610c135790565b604090600319011261000f57600435610eb18161091e565b9060a0600319830112610c1c57600435916001600160401b0390602435828111610bbf578161101591600401610bc9565b9260443583811161105c578261102d91600401610bc9565b92606435818111610e08578361104591600401610bc9565b92608435918211610e085761097691600401610bc9565b505050505050600080fd5b906080600319830112610c1c576004356110808161091e565b9160243561108d8161091e565b9160443591606435906001600160401b03821161105c578060238301121561105c5781602461097693600401359101610b88565b906060600319830112610c1c576001600160401b0390600435828111610c1357836110ee91600401610bc9565b92602435838111610bbf578161110691600401610bc9565b926044359181831161105c578060238401121561105c578260040135918211611175575b8160051b6040519360209361114185840187610aff565b8552602484860192820101928311610dfb57602401905b828210611166575050505090565b81358152908301908301611158565b61117d610ac0565b61112a565b959062ffffff946111ca6111eb956111bc60c099966111ae6111d8969d9e9d60e08e8181520190610a11565b8c810360208e015290610a11565b908a820360408c0152610a11565b9088820360608a0152610a11565b91608087015285820360a0870152610a11565b9416910152565b604090600319011261000f57600435610c658161091e565b604090600319011261000f576004359060243562ffffff81168114156109795790565b6001600160a01b0316801561124d57600052606860205260406000205490565b505060405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b156112ad57565b5060405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152606760205260409020546001600160a01b03166109768115156112a6565b90600182811c92168015611348575b602083101461133057565b5050634e487b7160e01b600052602260045260246000fd5b91607f1691611325565b906000929180549161136383611316565b9182825260019384811690816000146113c55750600114611385575b50505050565b90919394506000526020928360002092846000945b8386106113b157505050500101903880808061137f565b80548587018301529401938590820161139a565b60ff1916602084015250506040019350389150819050808061137f565b60405190600082606554916113f683611316565b8083529260019081811690811561147c575060011461141d575b5061093d92500383610aff565b6065600090815291507f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c75b848310611461575061093d935050810160200138611410565b81935090816020925483858a01015201910190918592611448565b94505050505060ff1916602083015261093d826040810138611410565b60405190600082606654916114ad83611316565b8083529260019081811690811561147c57506001146114d3575061093d92500383610aff565b6066600090815291507f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545b848310611517575061093d935050810160200138611410565b81935090816020925483858a010152019101909185926114fe565b9061153c816112f3565b6001600160a01b0381811690841681146116055733149081156115d7575b50156115695761093d91611b34565b505060405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260849150fd5b6001600160a01b03166000908152606a6020526040902060ff91506115fd903390610320565b54163861155a565b5050505050608460405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152fd5b60008181526067602052604090205461167b906001600160a01b031615156112a6565b6000908152606960205260409020546001600160a01b031690565b6001600160a01b038116919033831461171757816116d66116e79233600052606a60205260406000209060018060a01b0316600052602052604060002090565b9060ff801983541691151516179055565b60405190151581527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3565b50505050606460405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152fd5b1561176657565b5060405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b9061093d92916117da6117d584336118e6565b61175f565b6119b9565b60405190602082018281106001600160401b03821117611803575b60405260008252565b61180b610ac0565b6117fa565b909161093d9260405192602084018481106001600160401b0382111761183d575b6040526000845261184a565b611845610ac0565b611831565b9061186e93929161185e6117d584336118e6565b6118698383836119b9565b611c40565b1561187557565b5060405162461bcd60e51b81528061188f60048201611893565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b6001600160a01b03806118f8846112f3565b16928183169284841494851561192e575b50508315611918575b50505090565b61192491929350611658565b1614388080611912565b6000908152606a602090815260408083206001600160a01b03949094168352929052205460ff1693503880611909565b1561196557565b5060405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b6119dd906119c6846112f3565b6001600160a01b038281169390918216841461195e565b8316928315611ade57611a5b826119f88784611ab596613696565b611a1a85611a14611a088a6112f3565b6001600160a01b031690565b1461195e565b611a41611a31886000526069602052604060002090565b80546001600160a01b0319169055565b6001600160a01b0316600090815260686020526040902090565b80546000190190556001600160a01b038116600090815260686020526040902060018154019055611a96856000526067602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051a4565b505050505050608460405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152fd5b600082815260696020526040902080546001600160a01b0319166001600160a01b0383161790556001600160a01b0380611b6d846112f3565b169116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9256000604051a4565b60009081526067602052604090205461093d906001600160a01b031615156112a6565b90816020910312610c1c575161097681610981565b6001600160a01b03918216815291166020820152604081019190915260806060820181905261097692910190610a11565b506040513d6000823e3d90fd5b3d15611c3b573d90611c2182610b5e565b91611c2f6040519384610aff565b82523d6000602084013e565b606090565b92909190823b15611cef57611c73926020926000604051809681958294630a85bd0160e11b9a8b85523360048601611bd2565b03926001600160a01b03165af160009181611ccf575b50611cc157505050611c99611c10565b80519081611cbc57505060405162461bcd60e51b81528061188f60048201611893565b602001fd5b6001600160e01b0319161490565b611ce8919250611cdf3d82610aff565b3d810190611bbd565b9038611c89565b50505050600190565b50634e487b7160e01b600052602160045260246000fd5b60021115611d1957565b61093d611cf8565b611d2a81611d0f565b6000526098602052604060002090565b611d4381611d0f565b6000526097602052604060002090565b60011115611d1957565b906001811015611d76575b600052602052604060002090565b611d7e611cf8565b611d68565b90611d96602092828151948592016109dc565b0190565b6020611db39181604051938285809451938492016109dc565b810161013081520301902090565b6001600160a01b0390816002611dd683611d9a565b015460101c1615611f6257611dea90611d9a565b908154611df6906157f6565b906001830154611e05906157f6565b92600201548060081c60ff16611e1a90615a92565b91611e2760ff8316615a92565b908260101c16611e36906159dd565b9160b01c60ff16611e4681614877565b611e4f906157f6565b604051607b60f81b60208201529586959194916021870169113a37b5b2b724b2111d60b11b8152600a01611e8291611d83565b611e8b906157e9565b671139b1b7b932911d60c11b8152600801611ea591611d83565b611eae906157e9565b6e113730b6b2ab32b934b334b2b2111d60891b8152600f01611ecf91611d83565b611ed8906157e9565b711131b7b73a32b73a2b32b934b334b2b2111d60711b8152601201611efc91611d83565b611f05906157e9565b681137bbb732b9111d1160b91b8152600901611f2091611d83565b61088b60f21b8152600201681139ba30ba3ab9911d60b91b8152600901611f4691611d83565b607d60f81b815260010103601f19810182526109769082610aff565b5050604051630d436c3560e21b815260049150fd5b6001600160a01b036002611f8a83611d9a565b015460101c1615611fab576002611fa260ff92611d9a565b015460081c1690565b5050604051630d436c3560e21b8152600490fd5b6001600160a01b036002611fd283611d9a565b015460101c1615611fab576001611fe882611d9a565b01611ff3815461205a565b9055611ffe81611d9a565b547f3ea1c0fcf71b86fca8f96ccac3cf26fba8983d3bbbe7bd720f1865d67fbaee4361203e600161202e85611d9a565b0154604051918291339683612072565b0390a3565b50634e487b7160e01b600052601160045260246000fd5b600190600019811461206a570190565b611d96612043565b929190612089602091604086526040860190610a11565b930152565b6001600160a01b0360026120a183611d9a565b015460101c1615611fab5760016120b782611d9a565b0154156120d45760016120c982611d9a565b01611ff381546120e8565b50506040516341f3125f60e11b8152600490fd5b80156120f6575b6000190190565b6120fe612043565b6120ef565b61210c81611d0f565b60005260fe60205260406000205490565b90916000549260ff8460081c16158094819561223f575b811561221f575b50156121bf576121619284612158600160ff196000541617600055565b6121a65761224d565b61216757565b61217761ff001960005416600055565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1565b6121ba61010061ff00196000541617600055565b61224d565b5050505050608460405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152fd5b303b15915081612231575b503861213b565b6001915060ff16143861222a565b600160ff8216109150612134565b92919061226a60ff60005460081c166122658161238f565b61238f565b83516001600160401b038111612382575b61228f8161228a606554611316565b612407565b602080601f83116001146122ec575090806122cc93926122d996976000926122e1575b50508160011b916000199060031b1c1916176065556124f8565b6122d46126cb565b612845565b61093d615327565b0151905038806122b2565b90601f1983169661231f60656000527f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c790565b926000905b89821061236a5750509183916001936122cc96956122d9999a10612351575b505050811b016065556124f8565b015160001960f88460031b161c19169055388080612343565b80600185968294968601518155019501930190612324565b61238a610ac0565b61227b565b1561239657565b5060405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b8181106123fb575050565b600081556001016123f0565b90601f8211612414575050565b61093d9160656000527f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7906020601f840160051c8301931061245e575b601f0160051c01906123f0565b9091508190612451565b90601f8211612475575050565b61093d9160666000527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354906020601f840160051c8301931061245e57601f0160051c01906123f0565b9190601f81116124cd57505050565b61093d926000526020600020906020601f840160051c8301931061245e57601f0160051c01906123f0565b9081516001600160401b0381116125e2575b61251e81612519606654611316565b612468565b602080601f831160011461255a575081929360009261254f575b50508160011b916000199060031b1c191617606655565b015190503880612538565b90601f1983169461258d60666000527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435490565b926000905b8782106125ca5750508360019596106125b1575b505050811b01606655565b015160001960f88460031b161c191690553880806125a6565b80600185968294968601518155019501930190612592565b6125ea610ac0565b61250a565b91909182516001600160401b0381116126be575b612617816126118454611316565b846124be565b602080601f8311600114612653575081929394600092612648575b50508160011b916000199060031b1c1916179055565b015190503880612632565b90601f1983169561266985600052602060002090565b926000905b8882106126a65750508360019596971061268d575b505050811b019055565b015160001960f88460031b161c19169055388080612683565b8060018596829496860151815501950193019061266e565b6126c6610ac0565b612603565b60006126dd60ff825460081c1661238f565b808052609860209081526040808320336000908152908352819020549192909160ff16612811578080526098835281812033600090815260209190915260409020612730905b805460ff19166001179055565b808052609783528181206127448154612825565b905581516001815233602082018190527faf048a30703f33a377518eb62cc39bd3a14d6d1a1bb8267dcc440f1bde67b61a949183908690604090a36001825260988152828220336000908152602091909152604090205460ff166127fc579181609760019485849552609881526127d2612723338686209060018060a01b0316600052602052604060002090565b85835252206127e18154612825565b9055516001815233602082018190529290806040810161203e565b5050516397b705ed60e01b8152600492509050fd5b50516397b705ed60e01b8152600492509050fd5b600190600119811161206a570190565b600290600219811161206a570190565b9061285760ff60005460081c1661238f565b60005b82518110156128a4578061287061289292611d0f565b8351811015612897575b61288d60208260051b86010151826128c0565b61205a565b61285a565b61289f6128a9565b61287a565b509050565b50634e487b7160e01b600052603260045260246000fd5b6040907f6819853ffee8927169953e7bdc42aaba347fb03ff918a45bfccaf88626d90096926128ee82611d0f565b8160005260fe60205280836000205582519161290981611d0f565b82526020820152a1565b9496919792989b999093959b612927612f74565b600160005260986020526129656129616103378d7fe66b7f18a15fed257e722ee4e0b46d479842712099771fae6234a4975b3be6fa610320565b1590565b612aef578a938c9389612ae0575b610163549e8f9a6129848c8b612e45565b8d8d8d6101635461299490612825565b610163556129ad90600052610164602052604060002090565b906129b88c836125ef565b6129c590600183016125ef565b6129d282600283016125ef565b6129e0838e60038401612b1d565b6129ed87600483016125ef565b60058101805462ffffff191662ffffff8a1617905560006006820155612a11610b20565b918483528560208401528660408401526060830152600701612a3c9060008052602052604060002090565b90612a4691612bea565b6040519a8b9a600160a01b60019003169e339e612a639b8d612d2a565b037f11d53b6a608f8a1150f88cdb3e563af3830dd531f39be8e1cdaa8cc8b43d77b491a4612a9c83600052610165602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055612ace82600052610166602052604060002090565b805460ff191690556109769082612f50565b612aea8a8a615368565b612973565b505050505050505050505050505060405163070198dd60e51b81528061188f60048201906001602083019252565b9092916001600160401b038111612bdd575b612b3d816126118454611316565b6000601f8211600114612b765781929394600092612b6b5750508160011b916000199060031b1c1916179055565b013590503880612632565b601f19821694612b8b84600052602060002090565b91805b878110612bc5575083600195969710612bab57505050811b019055565b0135600019600384901b60f8161c19169055388080612683565b90926020600181928686013581550194019101612b8e565b612be5610ac0565b612b2f565b91909182519283516001600160401b038111612cfc575b612c1581612c0f8554611316565b856124be565b6020948590601f8311600114612c835761093d95968360609460039694612c5e94600092612c78575b50508160011b9160001990881b1c19161786555b820151600186016125ef565b612c6f6040820151600286016125ef565b015191016125ef565b015190503880612c3e565b90601f19831691612c9986600052602060002090565b9260005b818110612ce557508460039694612c5e9461093d9a9b9460609860019510612ccd575b505050811b018655612c52565b0151600019838a1b60f8161c19169055388080612cc0565b929389600181928786015181550195019301612c9d565b612d04610ac0565b612c01565b908060209392818452848401376000828201840152601f01601f1916010190565b9790612de897612da59b9e9d9b61093d9d98612d978c612dde9a6101409f999a612d89612dcf9c612d7b612dc19c612d6d612db39c610160808a52890190610a11565b908782036020890152610a11565b908582036040870152610a11565b926060818503910152612d09565b8c810360808e015290610a11565b908a820360a08c0152610a11565b9088820360c08a0152610a11565b9086820360e0880152610a11565b62ffffff909916610100850152565b1515610120830152565b6001600160a01b03909216910152565b15612dff57565b5060405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b6001600160a01b038116908115612f0857600083815260676020526040902054612ede9190612e80906001600160a01b031615155b15612df8565b612e88615349565b600084815260676020526040902054612eab906001600160a01b03161515612e7a565b6001600160a01b038116600090815260686020526040902060018154019055611a96846000526067602052604060002090565b60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef81604051a4565b50505050606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b9061093d9160005261013160205260406000209060ff801983541691151516179055565b6000805260fe6020527f32796e36004994222362c2f9423d5e208bb848170964890784a8d59ed40f50af5434811415612faa5750565b6024915060405190635f7e28df60e01b82526004820152fd5b600160005260fe6020527f457c8a48b4735f56b938837eb0a8a5f9c55f23c1a85767ce3b65c3e59d3d32b75434811415612faa5750565b60008181526067602052604090205461301d906001600160a01b031615156112a6565b613026816112f3565b90600090815260206101318152604060ff818420541692610166835260ff82822054169061016484528281209461309984519761306289610ad7565b601d89527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000878a01526001600160a01b03166159dd565b926003870160058801926130dd856130bc6130b7875462ffffff1690565b615ad8565b8b8a51938492839263891c235f60e01b845288600482019160048601615725565b038173__$ecf603b2c2aa531f37c90ec146d2a3e91a$__5af49586156134b0575b8096613486575b505061311090615a92565b9161311a90615a92565b90600789019160068a0154938361313c86809690600052602052604060002090565b946131509190600052602052604060002090565b6001019461315d906157f6565b955462ffffff1661316d90615ad8565b9689519b8c998c8b0161318890600190607b60f81b81520190565b67113730b6b2911d1160c11b81526008016131a3908361576d565b61088b60f21b81526002016e113232b9b1b934b83a34b7b7111d1160891b8152600f016131d3906001840161576d565b61088b60f21b8152600201681137bbb732b9111d1160b91b81526009016131f991611d83565b61088b60f21b81526002016f1132bc3a32b93730b62fbab936111d1160811b81526010016132299160020161576d565b61088b60f21b8152600201681134b6b0b3b2911d1160b91b815260090161324f91611d83565b61088b60f21b81526002017f226163636573735f706f696e745f6175746f5f617070726f76616c223a0000008152601d0161328991611d83565b613292906157e9565b6a113b32b934b334b2b2111d60a91b8152600b016132af91611d83565b6132b8906157e9565b6e2261747472696275746573223a205b60881b8152600f017f7b2274726169745f74797065223a2022454e53222c202276616c7565223a22008152601f016132ff9161576d565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a2022436f6d6d69742048617368222c20227681526630b63ab2911d1160c91b602082015260270161334a9161576d565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a20225265706f7369746f7279222c20227661815265363ab2911d1160d11b60208201526026016133949161576d565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a202256657273696f6e222c202276616c7565815262111d1160e91b60208201526023016133db91611d83565b62089f4b60ea1b81526003017f7b2274726169745f74797065223a2022436f6c6f72222c202276616c7565223a8152601160f91b602082015260210161342091611d83565b61227d60f01b8152600201605d60f81b8152600101607d60f81b81526001010392601f199384810182526134549082610aff565b61345d906155ec565b9051938492830161346d91611d83565b61347691611d83565b0390810182526109769082610aff565b613110929650906134a8913d90823e61349f3d82610aff565b3d8101906156c7565b949038613105565b6134b8611c03565b6130fe565b6000818152606760205260409020546134e0906001600160a01b031615156112a6565b60005261016460205260409081600020600681015462ffffff600583015416938051613517816135108187611352565b0382610aff565b94815161352b816135108160018901611352565b9460046135688451613544816135108160028c01611352565b96613510865161355b816135108160038701611352565b9796518094819301611352565b9190565b60008181526067602052604090205461358f906001600160a01b031615156112a6565b600052610164602052604080600020906135b162ffffff600584015416615ad8565b90600683015460005260078301602052600281600020019361351061097683516135df81613510818a611352565b96600461360a60036135fa8a6135108a518094819301611352565b9861351088518094819301611352565b95945192838092611352565b600181106120f6576000190190565b61016354801561363e57600181106120f6576000190190565b50506040516327e4ec1b60e21b8152600490fd5b63ffffffff60e01b166380ac58cd60e01b8114908115613685575b8115613677575090565b6301ffc9a760e01b14919050565b635b5e139f60e01b8114915061366d565b9061369f615349565b6001600160a01b03918216151580806136df575b156136c45750505061093d906136ea565b6136cd57505050565b16156136d65750565b61093d906136ea565b5082821615156136b3565b80600052609960205260406000206001815481198111613734575b0190557f8c7eb22d1ba10f86d9249f2a8eb0e3e35b4f0b2f21f92dea9ec25a4d84b20fa06020604051338152a2565b61373c612043565b613705565b61374a816112f3565b6001600160a01b0316331415613886575b60008181526067602052604090205461377e906001600160a01b031615156112a6565b8060005260206101648152600260406000200190835180916001600160401b038211613879575b6137b9826137b38654611316565b866124be565b80601f831160011461380b5750600091613800575b508160011b916000199060031b1c19161790555b600080516020615bdf8339815191526040518061203e339582613894565b9050840151386137ce565b9150601f19831661382185600052602060002090565b926000905b8282106138615750509083600194939210613848575b5050811b0190556137e2565b86015160001960f88460031b161c19169055388061383c565b80600185968294968c01518155019501930190613826565b613881610ac0565b6137a5565b61388f816138c7565b61375b565b9060806109769260408152600b60408201526a195e1d195c9b985b15549360aa1b60608201528160208201520190610a11565b600081815260996020908152604080832054609a83528184209084528252808320838052825280832033845290915281205460ff1615613905575050565b604492506040519163158eff0360e21b835260048301526024820152fd5b9061203e600080516020615bdf83398151915291613940846112f3565b6001600160a01b03163314156139d0575b61395b8582615368565b60008481526067602052604090205461397e906001600160a01b031615156112a6565b6139a08582600361399a88600052610164602052604060002090565b01612b1d565b604051918291604083526003604084015262454e5360e81b60608401526080602084015233966080840191612d09565b6139d9846138c7565b613951565b6139e7816112f3565b6001600160a01b0316331415613b1a575b600081815260676020526040902054613a1b906001600160a01b031615156112a6565b8060005260206101648152604060002090835180916001600160401b038211613b0d575b613a4d826137b38654611316565b80601f8311600114613a9f5750600091613a94575b508160011b916000199060031b1c19161790555b600080516020615bdf8339815191526040518061203e339582613b28565b905084015138613a62565b9150601f198316613ab585600052602060002090565b926000905b828210613af55750509083600194939210613adc575b5050811b019055613a76565b86015160001960f88460031b161c191690553880613ad0565b80600185968294968c01518155019501930190613aba565b613b15610ac0565b613a3f565b613b23816138c7565b6139f8565b906080610976926040815260046040820152636e616d6560e01b60608201528160208201520190610a11565b613b5d816112f3565b6001600160a01b0316331415613c91575b600081815260676020526040902054613b91906001600160a01b031615156112a6565b8060005260206101648152600180604060002001918451906001600160401b038211613c84575b613bc6826137b38654611316565b80601f8311600114613c19575081928291600093613c0e575b501b916000199060031b1c19161790555b600080516020615bdf8339815191526040518061203e339582613c9f565b870151925038613bdf565b9082601f198116613c2f87600052602060002090565b936000905b87838310613c6a5750505010613c51575b5050811b019055613bf0565b86015160001960f88460031b161c191690553880613c45565b8b8601518755909501949384019386935090810190613c34565b613c8c610ac0565b613bb8565b613c9a816138c7565b613b6e565b9060806109769260408152600b60408201526a3232b9b1b934b83a34b7b760a91b60608201528160208201520190610a11565b613cdb816112f3565b6001600160a01b0316331415613e11575b600081815260676020526040902054613d0f906001600160a01b031615156112a6565b8060005260206101648152600460406000200190835180916001600160401b038211613e04575b613d44826137b38654611316565b80601f8311600114613d965750600091613d8b575b508160011b916000199060031b1c19161790555b600080516020615bdf8339815191526040518061203e339582613e1f565b905084015138613d59565b9150601f198316613dac85600052602060002090565b926000905b828210613dec5750509083600194939210613dd3575b5050811b019055613d6d565b86015160001960f88460031b161c191690553880613dc7565b80600185968294968c01518155019501930190613db1565b613e0c610ac0565b613d36565b613e1a816138c7565b613cec565b906080610976926040815260046040820152636c6f676f60e01b60608201528160208201520190610a11565b613e54816112f3565b6001600160a01b0316331415613efa575b600081815260676020526040902054613e88906001600160a01b031615156112a6565b600081815261016460205260409020600501805462ffffff191662ffffff841617905562ffffff6040519260408452600560408501526431b7b637b960d91b60608501521660208301527f7a3039988e102050cb4e0b6fe203e58afd9545e192ef2ca50df8d14ee2483e7e60803393a3565b613f03816138c7565b613e65565b92919092613f15816112f3565b6001600160a01b031633141561405d575b600081815260676020526040902054613f49906001600160a01b031615156112a6565b80600052602093610164855260046040600020018151956001600160401b038711614050575b613f7d876126118454611316565b80601f8811600114613fdf5750958061093d9697600091613fd4575b508160011b916000199060031b1c19161790555b81600080516020615bdf83398151915260405180613fcc339582613e1f565b0390a3613e4b565b905083015138613f99565b90601f198816613ff484600052602060002090565b926000905b82821061403857505091889161093d98996001941061401f575b5050811b019055613fad565b85015160001960f88460031b161c191690553880614013565b80600185968294968a01518155019501930190613ff9565b614058610ac0565b613f6f565b614066816138c7565b613f26565b92909391614078846112f3565b6001600160a01b031633141561416b575b6000848152606760205260409020546140ac906001600160a01b031615156112a6565b6141216140b7610b20565b86815282602082015283604082015284606082015261411c60076140e688600052610164602052604060002090565b0160066140fe89600052610164602052604060002090565b019061410a825461205a565b80925590600052602052604060002090565b612bea565b614129610b20565b9485526020850152604084015260608301527fc34cc0b39823c062f2d31bfcde1d16c45decb5d1378a2f63942221b5d39dfbf06040518061203e339582614179565b614174846138c7565b614089565b604081526005604082015264189d5a5b1960da1b6060820152608081019060209160808383015291610100820193926000905b600482106141bc57505050505090565b909192939483806141d9600193607f198982030186528951610a11565b970192019201909392916141ac565b6141f1816112f3565b6001600160a01b03908116331415614312576000818392614211846112f3565b614219615349565b161515808061430b575b83146142f45750614233836136ea565b61423c836112f3565b614253611a31856000526069602052604060002090565b6001600160a01b038116600090815260686020526040902083198154019055614289611a31856000526067602052604060002090565b167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef82604051a46142d060026142ca83600052610164602052604060002090565b0161432c565b6142d75750565b6142ef61093d91600052610164602052604060002090565b6143a7565b6142fd57614233565b614306836136ea565b614233565b5082614223565b5060249150604051906355d2292f60e11b82526004820152fd5b6109769054611316565b6001600160fe1b03811160011661434e575b60021b90565b614356612043565b614348565b6143658154611316565b908161436f575050565b81601f60009311600114614381575055565b8183526020832061439d91601f0160051c8101906001016123f0565b8160208120915555565b60066000916143b58161435b565b6143c16001820161435b565b6143cd6002820161435b565b6143d96003820161435b565b6143e56004820161435b565b8260058201550155565b6143f8816112f3565b6001600160a01b03163314156144e5576001600160a01b03821660009081527fe66b7f18a15fed257e722ee4e0b46d479842712099771fae6234a4975b3be6fa602052604090205460ff16156144c95761445181611b9a565b61446a82611a9683600052610165602052604060002090565b60408051818152600891810191909152673b32b934b334b2b960c11b60608201526001600160a01b03909216602083015233917f967cd1f911fe3c627b223c427ab2e2a18d89bef4a19ba762b552fd5fbc1033aa90806080810161203e565b505060405163070198dd60e51b81526001600482015260249150fd5b905060249150604051906355d2292f60e11b82526004820152fd5b600081815260676020526040902054614523906001600160a01b031615156112a6565b600090815261016560205260409020546001600160a01b031690565b614547614611565b8060005261016560205260409160018060a01b038360002054163314156145f85760008281526067602052604090205461458b906001600160a01b031615156112a6565b816000526101666020526145ae81846000209060ff801983541691151516179055565b6008835193808552840152671d995c9a599a595960c21b6060840152151560208301527e91a55492d3e3f4e2c9b36ff4134889d9118003521f9d531728503da510b11f60803393a3565b509060249250519063926e6e9960e01b82526004820152fd5b3360009081527fe66b7f18a15fed257e722ee4e0b46d479842712099771fae6234a4975b3be6fa602052604090205460ff161561464a57565b5060405163070198dd60e51b815260016004820152602490fd5b3360009081527fddaeee8e61001dbcfaf4f92c6943552c392a86665d734d3c1905d7b3c23b1b1e602052604090205460ff161561469d57565b5060405163070198dd60e51b815260006004820152602490fd5b6000818152606760205260409020546146da906001600160a01b031615156112a6565b60005261016660205260ff6040600020541690565b6146f7615349565b6146ff612fc3565b600081815260676020526040902054614722906001600160a01b031615156112a6565b6001600160a01b03614749600261473885611d9a565b015460101c6001600160a01b031690565b16614862577fb3f4be48c43e81d71721c23e88ed2db7f6782bf8b181c690104db1e31f82bbe890604051817f8140554c907b4ba66a04ea1f43b882cba992d3db4cd5c49298a56402d7b36ca23392806147a28882610a36565b0390a36147bd61033782600052610131602052604060002090565b1561481757614812906148046147d1610b3f565b828152600060208201819052604082018190526060820152336080820152600160a08201526147ff86611d9a565b614881565b60405191829133958361495d565b0390a2565b61481290614854614826610b3f565b828152600060208201819052604082018190526060820152336080820152600060a08201526147ff86611d9a565b604051918291339583614939565b505060405163142d0c2f60e11b815260049150fd5b60041115611d1957565b600290825181556020830151600182015501906148b060408201511515839060ff801983541691151516179055565b6060810151825461ff00191690151560081b61ff00161782556080810151825462010000600160b01b0319811660109290921b62010000600160b01b0316918217845560a09092015161490281614877565b600481101561492c575b62010000600160b81b03199092161760b09190911b60ff60b01b16179055565b614934611cf8565b61490c565b604090614953600093959495606083526060830190610a11565b9460208201520152565b604090614953600193959495606083526060830190610a11565b604090614953600393959495606083526060830190610a11565b604090614953600293959495606083526060830190610a11565b6149b3615349565b6001600160a01b038060026149c784611d9a565b015460101c1615611f625760026149dd83611d9a565b015460101c16331415614a7b57614a0c60026149f883611d9a565b01805460ff60b01b1916600360b01b179055565b614a1581611d9a565b546040517fb3f4be48c43e81d71721c23e88ed2db7f6782bf8b181c690104db1e31f82bbe8339180614a48858783614977565b0390a27fef2f6bed86b96d79b41799f5285f73b31274bb303ebe5d55a3cb48c567ab2db06040518061203e339582610a36565b5050604051631851b23d60e01b8152600490fd5b614a98816112f3565b6001600160a01b03163314156144e557600081815260676020526040902054614acb906001600160a01b031615156112a6565b614ad58282612f50565b6040519160408352601760408401527f616363657373506f696e744175746f417070726f76616c0000000000000000006060840152151560208301527e91a55492d3e3f4e2c9b36ff4134889d9118003521f9d531728503da510b11f60803393a3565b919091614b44816112f3565b6001600160a01b0316331415614c1857614b5d83611d9a565b8181541415614c025760020190614b79825460ff9060b01c1690565b614b8281614877565b614bec577fb3f4be48c43e81d71721c23e88ed2db7f6782bf8b181c690104db1e31f82bbe89215614bc857815460ff60b01b1916600160b01b1790915561481290614804565b815460ff60b01b1916600160b11b1790915561481290604051918291339583614991565b5050505050600460405163d9e5c51160e01b8152fd5b50505050506004604051636653b1a360e01b8152fd5b91505060249150604051906355d2292f60e11b82526004820152fd5b614c3c614611565b614c4581614cfc565b600081815261016560205260409020546001600160a01b0391908216331415614cdf57506002614c7483611d9a565b015460101c1615611f6257614ca0826002614c8e84611d9a565b019060ff801983541691151516179055565b7fe2e598f7ff2dfd4bc3bd989635401b4c56846b7893cb7eace51d099f21e69bff61203e614ccd83611d9a565b54604051918291339615159583612072565b92505050602491506040519063926e6e9960e01b82526004820152fd5b6001600160a01b036002614d0f83611d9a565b015460101c1615611fab57614d2390611d9a565b5490565b614d2f614611565b614d3881614cfc565b600081815261016560205260409020546001600160a01b0391908216331415614cdf57506002614d6783611d9a565b015460101c1615611f6257614d9a826002614d8184611d9a565b019061ff00825491151560081b169061ff001916179055565b7f17bd9b465aa0cdc6b308874903e9c38b13f561ecb1f2edaa8bf3969fe603d11c61203e614ccd83611d9a565b614dcf615349565b614dd7614664565b614de081611d0f565b60008181526098602090815260408083206001600160a01b038616845290915290205460ff16614ea157614e1381611d0f565b60008181526098602090815260408083206001600160a01b03861684529091529020614e3e90612723565b614e4781611d3a565b614e518154612825565b9055614e5c81611d0f565b60408051600181523360208201526001600160a01b03909316927faf048a30703f33a377518eb62cc39bd3a14d6d1a1bb8267dcc440f1bde67b61a918190810161203e565b50506040516397b705ed60e01b815260049150fd5b614ebe615349565b614ec7816112f3565b6001600160a01b03908116331415614fa857816000526099602052614f0f6103378561032086610493604060002054609a602052604060002090600052602052604060002090565b614f92577fa4e6ad394cc40a3bae0d24623f88f7bb2e1463d19dab64bafd9985b0bc78211890614f6c6127238661032087610493614f57896000526099602052604060002090565b546104848a600052609a602052604060002090565b614f7584611d53565b60408051600181523360208201529190951694819081015b0390a4565b505050505060046040516397b705ed60e01b8152fd5b5091505060249150604051906355d2292f60e11b82526004820152fd5b614fcd615349565b614fd5614664565b614fe86129616103378461032085611d21565b614ea157614ff581611d0f565b801580615093575b61507e5761501b6150118361032084611d21565b805460ff19169055565b61502481611d3a565b61502e8154613616565b905561503981611d0f565b60408051600081523360208201526001600160a01b03909316927faf048a30703f33a377518eb62cc39bd3a14d6d1a1bb8267dcc440f1bde67b61a918190810161203e565b50506040516360ed092b60e01b815260049150fd5b50600161509f82611d3a565b5414614ffd565b6150ae615349565b6150b7816112f3565b6001600160a01b03908116331415614fa8578160005260996020526151026129616103378661032087610493604060002054609a602052604060002090600052602052604060002090565b614f92577fa4e6ad394cc40a3bae0d24623f88f7bb2e1463d19dab64bafd9985b0bc7821189061514a6150118661032087610493614f57896000526099602052604060002090565b61515384611d53565b6040805160008152336020820152919095169481908101614f8d565b615177614664565b61517f615349565b60cc5460ff8160081c16156151c75760019060ff19161760cc5560007f07e8f74f605213c41c1a057118d86bca5540e9cf52c351026d0d65e46421aa1a6020604051338152a2565b5050604051635970d9f560e11b8152600490fd5b6151e3614664565b60cc5460ff8116156152245760ff191660cc5560007f07e8f74f605213c41c1a057118d86bca5540e9cf52c351026d0d65e46421aa1a6020604051338152a2565b50506040516355d413dd60e01b8152600490fd5b615240614664565b60cc549015159060ff8160081c16151582146152945761ff008260081b169061ff0019161760cc557f959581ef17eb8c8936ef9832169bc89dbcd1358765adca8ca81f28b416bb5efa6020604051338152a2565b506024915060405190632e15c5c160e21b82526004820152fd5b9061093d916152bb614664565b6128c0565b6152c8614664565b47806000811561531e575b600080809381933390f115615311575b6040519081527f8c7cdad0d12a8db3e23561b42da6f10c8137914c97beff202213a410e1f520a360203392a2565b615319611c03565b6152e3565b506108fc6152d3565b61533860ff60005460081c1661238f565b60cc805461ffff1916610100179055565b60ff60cc541661535557565b506040516306d39fcd60e41b8152600490fd5b6153749160009161543c565b604051906302571be360e01b825260048201526020816024816e0c2e074ec69a0dfb2997ba6c7d2e1e5afa908115615403575b6000916153d5575b506001600160a01b03163314156153c257565b50604051631644084960e21b8152600490fd5b906153e03d83610aff565b6020823d810103126153fd5750516153f78161091e565b386153af565b91505080fd5b61540b611c03565b6153a7565b9082101561541c570190565b611d966128a9565b90939293848311610bbf578411610c13578101920390565b91805b828110615498575090615456918161545d94615424565b3691610b88565b60208151910120604051615492816154846020820194856040916000825260208201520190565b03601f198101835282610aff565b51902090565b601760f91b6154c96154bc6154ae848789615410565b356001600160f81b03191690565b6001600160f81b03191690565b146154dc576154d79061205a565b61543f565b6154f26154eb82949394612825565b838661543c565b92615456926155019495615424565b8051602091820120604080519283019384528201526154928160608101615484565b60405190606082018281106001600160401b03821117615593575b604052604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b61559b610ac0565b61553e565b604051906155ad82610ad7565b6008825260203681840137565b906155c482610b5e565b6155d16040519182610aff565b82815280926155e2601f1991610b5e565b0190602036910137565b8051156156be576155fb615523565b61561f61561a61561561560e8551612835565b6003900490565b614336565b6155ba565b9160208301918182518301915b82821061566c575050506003905106806001146156595760021461564e575090565b603d90600019015390565b50603d9081600019820153600119015390565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c168801015160028601531685010151908201530193919061562c565b506109766117df565b602081830312610979578051906001600160401b038211610c13570181601f820112156109795780516156f981610b5e565b926157076040519485610aff565b81845260208284010111610c135761097691602080850191016109dc565b92615751610976959361574361575f94608088526080880190611352565b908682036020880152611352565b908482036040860152611352565b916060818403910152610a11565b60009291815461577c81611316565b926001918083169081156157d457506001146157985750505050565b90919293945060005260209081600020906000915b8583106157c3575050505001903880808061137f565b8054858401529183019181016157ad565b60ff191684525050500191503880808061137f565b600b60fa1b815260010190565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008082101561592b575b506d04ee2d6d415b85acef81000000008083101561591c575b50662386f26fc100008083101561590d575b506305f5e100808310156158fe575b50612710808310156158ef575b5060648210156158df575b600a809210156158d5575b60019081602161588d8287016155ba565b95860101905b61589f575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a8353049182156158d057919082615893565b615898565b916001019161587c565b9190606460029104910191615871565b60049193920491019138615866565b60089193920491019138615859565b6010919392049101913861584a565b60209193920491019138615838565b60409350810491503861581f565b6040519061594682610ad7565b6007825260203681840137565b60209080511561541c570190565b60219080516001101561541c570190565b90602091805182101561598457010190565b61598c6128a9565b010190565b1561599857565b50606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b60405190606082018281106001600160401b03821117615a85575b604052602a825260403660208401376030615a1283615953565b536078615a1e83615961565b536029905b60018211615a3657610976915015615991565b80600f615a7292166010811015615a78575b6f181899199a1a9b1b9c1cb0b131b232b360811b901a615a688486615972565b5360041c916120e8565b90615a23565b615a806128a9565b615a48565b615a8d610ac0565b6159f8565b15615ab757604051615aa381610ad7565b60048152637472756560e01b602082015290565b604051615ac381610ad7565b600581526466616c736560d81b602082015290565b62ffffff16615ae56155a0565b906030615af183615953565b536078615afd83615961565b5360079081905b60018211615b9957615b17915015615991565b615b1f615939565b91825115615b8c575b60236020840153600190815b838110615b42575050505090565b615b7a906001198111615b7f575b6001600160f81b0319615b6582860185615972565b511660001a615b748288615972565b5361205a565b615b34565b615b87612043565b615b50565b615b946128a9565b615b28565b80600f615bcb92166010811015615bd1575b6f181899199a1a9b1b9c1cb0b131b232b360811b901a615a688487615972565b90615b04565b615bd96128a9565b615bab56fe0eef1ffa5f2982ad38bb9f5022d2ac4c29b22af1469b6ed4f49176c737d74a18a36469706673582212205f78f20fa944789cd75c7c7059259e69adf1d7575474fde59bda6a4c7766b4be6c6578706572696d656e74616cf564736f6c634300080c0041",
"metadata": "{\"compiler\":{\"version\":\"0.8.12+commit.f00d7308\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessPointAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessPointCreationStatusAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessPointNotExistent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessPointScoreCannotBeLower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ContractIsNotPausable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ContractIsNotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ContractIsPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTokenIdForAccessPoint\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustBeAccessPointOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustBeENSOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MustBeTokenOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MustBeTokenVerifier\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MustHaveAtLeastOneOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"role\",\"type\":\"uint8\"}],\"name\":\"MustHaveCollectionRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"role\",\"type\":\"uint8\"}],\"name\":\"MustHaveTokenRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"state\",\"type\":\"bool\"}],\"name\":\"PausableIsSetTo\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"requiredValue\",\"type\":\"uint256\"}],\"name\":\"RequiredPayment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RoleAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ThereIsNoTokenMinted\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"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\":false,\"internalType\":\"enum FleekBilling.Billing\",\"name\":\"key\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"BillingChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"ChangeAccessPointContentVerify\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"enum FleekAccessPoints.AccessPointCreationStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"ChangeAccessPointCreationStatus\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"ChangeAccessPointNameVerify\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"ChangeAccessPointScore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"enum FleekAccessControl.CollectionRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"byAddress\",\"type\":\"address\"}],\"name\":\"CollectionRoleChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"value\",\"type\":\"uint24\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string[4]\",\"name\":\"value\",\"type\":\"string[4]\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"triggeredBy\",\"type\":\"address\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NewAccessPoint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"externalURL\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ENS\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"commitHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"gitRepository\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"ipfsHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint24\",\"name\":\"color\",\"type\":\"uint24\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"accessPointAutoApproval\",\"type\":\"bool\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"minter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"NewMint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isPausable\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PausableStatusChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"isPaused\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauseStatusChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"RemoveAccessPoint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"enum FleekAccessControl.TokenRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"status\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"byAddress\",\"type\":\"address\"}],\"name\":\"TokenRoleChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"byAddress\",\"type\":\"address\"}],\"name\":\"TokenRolesCleared\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"byAddress\",\"type\":\"address\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"}],\"name\":\"addAccessPoint\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"}],\"name\":\"decreaseAccessPointScore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"}],\"name\":\"getAccessPointJSON\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getAppData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum FleekBilling.Billing\",\"name\":\"key\",\"type\":\"uint8\"}],\"name\":\"getBilling\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getTokenVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum FleekAccessControl.CollectionRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantCollectionRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum FleekAccessControl.TokenRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantTokenRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum FleekAccessControl.CollectionRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasCollectionRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum FleekAccessControl.TokenRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasTokenRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"}],\"name\":\"increaseAccessPointScore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"initialBillings\",\"type\":\"uint256[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"}],\"name\":\"isAccessPointNameVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPausable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPaused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"isTokenVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"externalURL\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ens\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"commitHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"gitRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"logo\",\"type\":\"string\"},{\"internalType\":\"uint24\",\"name\":\"color\",\"type\":\"uint24\"},{\"internalType\":\"bool\",\"name\":\"accessPointAutoApproval\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"}],\"name\":\"removeAccessPoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum FleekAccessControl.CollectionRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeCollectionRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"enum FleekAccessControl.TokenRoles\",\"name\":\"role\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeTokenRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_apAutoApproval\",\"type\":\"bool\"}],\"name\":\"setAccessPointAutoApproval\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"name\":\"setAccessPointContentVerify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"name\":\"setAccessPointNameVerify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"apName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAccessPoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum FleekBilling.Billing\",\"name\":\"key\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setBilling\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"pausable\",\"type\":\"bool\"}],\"name\":\"setPausable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_commitHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_gitRepository\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_ipfsHash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_domain\",\"type\":\"string\"}],\"name\":\"setTokenBuild\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint24\",\"name\":\"_tokenColor\",\"type\":\"uint24\"}],\"name\":\"setTokenColor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenDescription\",\"type\":\"string\"}],\"name\":\"setTokenDescription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenENS\",\"type\":\"string\"}],\"name\":\"setTokenENS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenExternalURL\",\"type\":\"string\"}],\"name\":\"setTokenExternalURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenLogo\",\"type\":\"string\"}],\"name\":\"setTokenLogo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenLogo\",\"type\":\"string\"},{\"internalType\":\"uint24\",\"name\":\"_tokenColor\",\"type\":\"uint24\"}],\"name\":\"setTokenLogoAndColor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"}],\"name\":\"setTokenName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"verified\",\"type\":\"bool\"}],\"name\":\"setTokenVerified\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"setTokenVerifier\",\"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\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addAccessPoint(uint256,string)\":{\"details\":\"Add a new AccessPoint register for an app token. The AP name should be a DNS or ENS url and it should be unique. Anyone can add an AP but it should requires a payment. May emit a {NewAccessPoint} event. Requirements: - the tokenId must be minted and valid. - billing for add acess point may be applied. - the contract must be not paused.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Burns a previously minted `tokenId`. May emit a {Transfer} event. Requirements: - the tokenId must be minted and valid. - the sender must be the owner of the token. - the contract must be not paused.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decreaseAccessPointScore(string)\":{\"details\":\"Decreases the score of a AccessPoint registry if is greater than 0.\"},\"getAccessPointJSON(string)\":{\"details\":\"A view function to gether information about an AccessPoint. It returns a JSON string representing the AccessPoint information.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getBilling(uint8)\":{\"details\":\"Returns the billing value for a given key.\"},\"getLastTokenId()\":{\"details\":\"Returns the last minted tokenId.\"},\"getToken(uint256)\":{\"details\":\"Returns the token metadata associated with the `tokenId`. Returns multiple string and uint values in relation to metadata fields of the App struct. Requirements: - the tokenId must be minted and valid.\"},\"getTokenVerifier(uint256)\":{\"details\":\"Returns the verifier of a token. Requirements: - the tokenId must be minted and valid.\"},\"grantCollectionRole(uint8,address)\":{\"details\":\"Grants the collection role to an address. Requirements: - the caller should have the collection role.\"},\"grantTokenRole(uint256,uint8,address)\":{\"details\":\"Grants the token role to an address. Requirements: - the caller should have the token role.\"},\"hasCollectionRole(uint8,address)\":{\"details\":\"Returns `True` if a certain address has the collection role.\"},\"hasTokenRole(uint256,uint8,address)\":{\"details\":\"Returns `True` if a certain address has the token role.\"},\"increaseAccessPointScore(string)\":{\"details\":\"Increases the score of a AccessPoint registry.\"},\"initialize(string,string,uint256[])\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"isAccessPointNameVerified(string)\":{\"details\":\"A view function to check if a AccessPoint is verified.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"isPausable()\":{\"details\":\"Returns true if the contract is pausable, and false otherwise.\"},\"isPaused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"isTokenVerified(uint256)\":{\"details\":\"Returns the verification status of a token. Requirements: - the tokenId must be minted and valid.\"},\"mint(address,string,string,string,string,string,string,string,string,uint24,bool,address)\":{\"details\":\"Mints a token and returns a tokenId. If the `tokenId` has not been minted before, and the `to` address is not zero, emits a {Transfer} event. Requirements: - the caller must have ``collectionOwner``'s admin role. - billing for the minting may be applied. - the contract must be not paused.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"pause()\":{\"details\":\"Sets the contract to paused state. Requirements: - the sender must have the `controller` role. - the contract must be pausable. - the contract must be not paused.\"},\"removeAccessPoint(string)\":{\"details\":\"Remove an AccessPoint registry for an app token. It will also remove the AP from the app token APs list. May emit a {RemoveAccessPoint} event. Requirements: - the AP must exist. - must be called by the AP owner. - the contract must be not paused.\"},\"revokeCollectionRole(uint8,address)\":{\"details\":\"Revokes the collection role of an address. Requirements: - the caller should have the collection role.\"},\"revokeTokenRole(uint256,uint8,address)\":{\"details\":\"Revokes the token role of an address. Requirements: - the caller should have the token role.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setAccessPointAutoApproval(uint256,bool)\":{\"details\":\"Updates the `accessPointAutoApproval` settings on minted `tokenId`. May emit a {MetadataUpdate} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setAccessPointContentVerify(string,bool)\":{\"details\":\"Set the content verification of a AccessPoint registry. May emit a {ChangeAccessPointContentVerify} event. Requirements: - the AP must exist. - the sender must have the token controller role.\"},\"setAccessPointNameVerify(string,bool)\":{\"details\":\"Set the name verification of a AccessPoint registry. May emit a {ChangeAccessPointNameVerify} event. Requirements: - the AP must exist. - the sender must have the token controller role.\"},\"setApprovalForAccessPoint(uint256,string,bool)\":{\"details\":\"Set approval settings for an access point. It will add the access point to the token's AP list, if `approved` is true. May emit a {ChangeAccessPointApprovalStatus} event. Requirements: - the tokenId must exist and be the same as the tokenId that is set for the AP. - the AP must exist. - must be called by a token controller.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setBilling(uint8,uint256)\":{\"details\":\"Sets the billing value for a given key. May emit a {BillingChanged} event. Requirements: - the sender must have the `collectionOwner` role.\"},\"setPausable(bool)\":{\"details\":\"Sets the contract to pausable state. Requirements: - the sender must have the `owner` role. - the contract must be in the oposite pausable state.\"},\"setTokenBuild(uint256,string,string,string,string)\":{\"details\":\"Adds a new build to a minted `tokenId`'s builds mapping. May emit a {NewBuild} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenColor(uint256,uint24)\":{\"details\":\"Updates the `color` metadata field of a minted `tokenId`. May emit a {NewTokenColor} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenDescription(uint256,string)\":{\"details\":\"Updates the `description` metadata field of a minted `tokenId`. May emit a {NewTokenDescription} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenENS(uint256,string)\":{\"details\":\"Updates the `ENS` metadata field of a minted `tokenId`. May emit a {NewTokenENS} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenExternalURL(uint256,string)\":{\"details\":\"Updates the `externalURL` metadata field of a minted `tokenId`. May emit a {NewTokenExternalURL} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenLogo(uint256,string)\":{\"details\":\"Updates the `logo` metadata field of a minted `tokenId`. May emit a {NewTokenLogo} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenLogoAndColor(uint256,string,uint24)\":{\"details\":\"Updates the `logo` and `color` metadata fields of a minted `tokenId`. May emit a {NewTokenLogo} and a {NewTokenColor} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenName(uint256,string)\":{\"details\":\"Updates the `name` metadata field of a minted `tokenId`. May emit a {NewTokenName} event. Requirements: - the tokenId must be minted and valid. - the sender must have the `tokenController` role.\"},\"setTokenVerified(uint256,bool)\":{\"details\":\"Sets the verification status of a token. May emit a {MetadataUpdate} event. Requirements: - the tokenId must be minted and valid. - the sender must be the token verifier. - the sender must have `CollectionRoles.Verifier` role.\"},\"setTokenVerifier(uint256,address)\":{\"details\":\"Sets an address as verifier of a token. The verifier must have `CollectionRoles.Verifier` role. May emit a {MetadataUpdate} event. Requirements: - the tokenId must be minted and valid. - the sender must be the owner of the token. - the verifier must have `CollectionRoles.Verifier` role.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the token metadata associated with the `tokenId`. Returns a based64 encoded string value of the URI. Requirements: - the tokenId must be minted and valid.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"unpause()\":{\"details\":\"Sets the contract to unpaused state. Requirements: - the sender must have the `controller` role. - the contract must be paused.\"},\"withdraw()\":{\"details\":\"Withdraws all the funds from contract. May emmit a {Withdrawn} event. Requirements: - the sender must have the `collectionOwner` role.\"}},\"version\":1},\"userdoc\":{\"events\":{\"MetadataUpdate(uint256,string,string,address)\":{\"notice\":\"Event emitted when a token's metadata is updated.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FleekERC721.sol\":\"FleekERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"@ensdomains/ens-contracts/contracts/registry/ENS.sol\":{\"keccak256\":\"0x7cb1158c7d268b63de1468e28e2711b28d686e2628ddb22da2149cd93ddeafda\",\"urls\":[\"bzz-raw://a7018309acca24b10ea1235b1c27828f29f2ddfabb653a794639baf620dc2314\",\"dweb:/ipfs/QmakFQT5NFvGs3g8xxwtgtWdddq28Wtm6MjNSpJNhV1YpR\"]},\"@ensdomains/ens-contracts/contracts/resolvers/Resolver.sol\":{\"keccak256\":\"0x62b71222aa65138e124b94f5835c2163cc88213491e5f0a80d7a4c45641fbe64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2def0b17096b07578ac974ab3871d71c757a01389bbfdb124d103308a3ecaad9\",\"dweb:/ipfs/QmepR8cbk2etYYnKHArZFuGNTZ2huqFihxq9mzfS3YgE3Y\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IABIResolver.sol\":{\"keccak256\":\"0x85b373d02d19374fe570af407f459768285704bf7f30ab17c30eabfb5a10e4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2046ce3d92d29806d7b447f7ab4227f19b0b2e5c75fd5b4a3fcaef7fe2442141\",\"dweb:/ipfs/QmRgnfWjFetrSJngkhU7Yui1ZcK1MeatvZDpvUTYNuYnND\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IAddrResolver.sol\":{\"keccak256\":\"0x2ad7f2fc60ebe0f93745fe70247f6a854f66af732483fda2a3c5e055614445e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43922ba183ff20d87dce7fc5d715e626b26594151e36dcc8d7c6329b9a822963\",\"dweb:/ipfs/QmTg9uHTugTxzqddN68gnhNbGt4bGJBS9mQcss6GYggR4X\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IAddressResolver.sol\":{\"keccak256\":\"0x411447c1e90c51e09702815a85ec725ffbbe37cf96e8cc4d2a8bd4ad8a59d73e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543aa2756447a428711b69aea79e9f4641c22f8330ba920b2a49fde8d9207f82\",\"dweb:/ipfs/QmTdpcYRWLH3BL7iytnqcSzRojTPe3YettKaTqeCvKPk54\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IContentHashResolver.sol\":{\"keccak256\":\"0xd95cd77684ba5752c428d7dceb4ecc6506ac94f4fbb910489637eb68dcd8e366\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daf1fee7770679bd935b8b5686789a4ecc532caeef5a9b8e1b60ae0c285e743e\",\"dweb:/ipfs/QmSaHBAqtDdbQLH6QN4EbupMrq2ah8g6fqE7fLX1u4cjMZ\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IDNSRecordResolver.sol\":{\"keccak256\":\"0xcfa52200edd337f2c6c5bf402352600584da033b21323603e53de33051a3e25d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c8355211d58db82660140191678ee342eb8a7ac46fa097ae8e03eef008f592e\",\"dweb:/ipfs/QmYDNiECPd4fJ7Vk9Xywfpg73rUvDpcYqas95ofGcpt7fM\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IDNSZoneResolver.sol\":{\"keccak256\":\"0xca1b3a16e7005533f2800a3e66fcdccf7c574deac7913d8c810f40aec1d58dc0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4e38d5eb69e236c37e4a013628838070720c9e1923569650b01252868038c7a\",\"dweb:/ipfs/QmV397iZMRxtem79kJy5sueJadXoVL89gNViX2xciQHUrk\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IExtendedResolver.sol\":{\"keccak256\":\"0x5d81521cfae7d9a4475d27533cd8ed0d3475d369eb0674fd90ffbdbdf292faa3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d244d15588785044b54c453ab6dc51c616ab70cb8b9e687d3e54565bcae97760\",\"dweb:/ipfs/QmXz4ZZBTFogdkdTV1mcE3ywvL2agKVZHLNNeRHCKVruYM\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IInterfaceResolver.sol\":{\"keccak256\":\"0x390321fb58f7b927df9562450981e74b4be3907e7c09df321fd3b7409b63ae28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://045d12c6e0e4596b3672614751a9e75188183a89765a6abd938294e0294e9c56\",\"dweb:/ipfs/QmazngvagEoKe29s4M9Rv8KygWD5hrAtNPkYDPJ2pK13yx\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/INameResolver.sol\":{\"keccak256\":\"0x9ec392b612447b1acbdc01114f2da2837a658d3f3157f60a99c5269f0b623346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b2cd9e5339b09f40e82bd91fed7d5f643dd031393eefb9aec588eaba8465049\",\"dweb:/ipfs/QmT2A8eswhJU9YadCs9BtwKNj6YGypntXmFepANQYyGw7x\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/IPubkeyResolver.sol\":{\"keccak256\":\"0x69748947093dd2fda9ddcebd0adf19a6d1e7600df1d4b1462a0417156caddca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2f86e50bd17c38fb10feb577d88d8970c585017a391ef10e3aaa3d50f81555\",\"dweb:/ipfs/QmaxLx2pqCUxf9W2dusfviZ9aSiTuVwuekGo73rjvmGifE\"]},\"@ensdomains/ens-contracts/contracts/resolvers/profiles/ITextResolver.sol\":{\"keccak256\":\"0x7c5debb3c42cd9f5de2274ea7aa053f238608314b62db441c40e31cea2543fd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://412e34ae2d84d542ffa6791486963f3fe04432a3ffd51877d441256dc2941914\",\"dweb:/ipfs/QmciS4mGAQ6KJtLiLcBFekHKhYAYMmubDWGkpZ3sUFtJPW\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb\",\"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"@openzeppelin/contracts-upgradeable/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"@openzeppelin/contracts-upgradeable/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"@openzeppelin/contracts-upgradeable/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"@openzeppelin/contracts-upgradeable/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96\",\"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"contracts/FleekAccessControl.sol\":{\"keccak256\":\"0xdd0352b2e9e1a7393cb85a85efb7135cc5c0d5365ee156ca78eda2c82113b6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb62245b17047d2261afb923ffb7592cc54c78cad599828deb3342e4e6de6c99\",\"dweb:/ipfs/QmRfsz1x2dh4fx78KizNXLMjfisgvzGkizbpAasqzZvggr\"]},\"contracts/FleekAccessPoints.sol\":{\"keccak256\":\"0xa74f4f1af3f7100dde68c4824784a93927191c72f00416f96dded39b36cd43cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6aee8dc6e13e77cec72fbfadee051aad02ab25848646cda7f5a57a89126ea729\",\"dweb:/ipfs/QmWk9raFrRkASBmmZ3Ng9a5HyHYUbjfxEJKhdqwfR2WmL9\"]},\"contracts/FleekBilling.sol\":{\"keccak256\":\"0xcb1568aa8629045a5c97a365d81c448a24f0d6434798e386125633029393ed94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c775e1ea3aeab0841976c63bfcf95e64ba879ad4a4b635f76ef12fb6a5348b12\",\"dweb:/ipfs/Qmct7TaBnvH86d184URxWYtHwSHMAVyCrtvTG8hcoArD7p\"]},\"contracts/FleekERC721.sol\":{\"keccak256\":\"0xd3ad4111a7beda20e03a7ca63f87bc9c5666f55df966e5cb2b7b7701cbc24025\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65e7540087fed5bcbab614a5eae54ccedee395bfab7cff1e05856bf2481fb2c0\",\"dweb:/ipfs/QmStsGYSjG8eGXaCJQyq37YpjrSzJpTW8dUNHQYF6afH9S\"]},\"contracts/FleekPausable.sol\":{\"keccak256\":\"0x4d172714ea6231b283f96cb8e355cc9f5825e01039aa5a521e7a29bcb3ccd1cb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f099c1af04b71bf43bb34fe8413dffb51a8962f91fd99d61693160c3272bd58\",\"dweb:/ipfs/QmWQe9XyVeD955es4fgbHJuSDNZuqsdTCSDMrfJvioZCdj\"]},\"contracts/IERCX.sol\":{\"keccak256\":\"0xa3ed18c17836d56b1663c34de75a4ce309965fa6f13e88b08eeed29aca4cf4bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae2d073b525af1cf0445655d94c78fe02492e7d4562f815251e6b44a73a5904\",\"dweb:/ipfs/Qmesee9NVvXn84TR2H8AudwGaAZvrQN3JQ9Xs7spcwVs7A\"]},\"contracts/util/FleekENS.sol\":{\"keccak256\":\"0xf9be784932977798e530160f38eefdfbb55ae25a3d9cc58b477b092ef9936039\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffc81ef864a34e42a3ab1638e56d95f88721ec1032baadbc251a5ba3b4dd445\",\"dweb:/ipfs/QmUieEHXPHU79i1nx7KmoTVMfwjJGJHWRy2BYGd3PEceSB\"]},\"contracts/util/FleekSVG.sol\":{\"keccak256\":\"0x9d52d0defd643999776563c3ac36f084ae5a04a22c76ec316a0aadf6666c3c9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87bc5cca5451b7b8f3986dec26087857fe0f09505116536efad370172fe731a3\",\"dweb:/ipfs/QmZmDxPG8BUUjrVD92T2dktcuFQBxvHgMEnWx5aPBcSfrA\"]},\"contracts/util/FleekStrings.sol\":{\"keccak256\":\"0xccadd4e9c9c14068c6ca83c95d98a5b83b321bf442443f5432045a4313fcfce6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb4b7110961d44fba3f8f016a6fe1eeba7d783c723be7153ac8f05b24c68676d\",\"dweb:/ipfs/QmSCetjeCy7TGG9WFFbDLvpdVwYZrkMsdTBQmJuPwrugUT\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 533,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_initialized",
"offset": 0,
"slot": "0",
"type": "t_uint8"
},
{
"astId": 536,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_initializing",
"offset": 1,
"slot": "0",
"type": "t_bool"
},
{
"astId": 2151,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "__gap",
"offset": 0,
"slot": "1",
"type": "t_array(t_uint256)50_storage"
},
{
"astId": 2370,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "__gap",
"offset": 0,
"slot": "51",
"type": "t_array(t_uint256)50_storage"
},
{
"astId": 724,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_name",
"offset": 0,
"slot": "101",
"type": "t_string_storage"
},
{
"astId": 726,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_symbol",
"offset": 0,
"slot": "102",
"type": "t_string_storage"
},
{
"astId": 730,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_owners",
"offset": 0,
"slot": "103",
"type": "t_mapping(t_uint256,t_address)"
},
{
"astId": 734,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_balances",
"offset": 0,
"slot": "104",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 738,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_tokenApprovals",
"offset": 0,
"slot": "105",
"type": "t_mapping(t_uint256,t_address)"
},
{
"astId": 744,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_operatorApprovals",
"offset": 0,
"slot": "106",
"type": "t_mapping(t_address,t_mapping(t_address,t_bool))"
},
{
"astId": 1664,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "__gap",
"offset": 0,
"slot": "107",
"type": "t_array(t_uint256)44_storage"
},
{
"astId": 4526,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_collectionRolesCounter",
"offset": 0,
"slot": "151",
"type": "t_mapping(t_enum(CollectionRoles)4485,t_uint256)"
},
{
"astId": 4534,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_collectionRoles",
"offset": 0,
"slot": "152",
"type": "t_mapping(t_enum(CollectionRoles)4485,t_mapping(t_address,t_bool))"
},
{
"astId": 4539,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_tokenRolesVersion",
"offset": 0,
"slot": "153",
"type": "t_mapping(t_uint256,t_uint256)"
},
{
"astId": 4551,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_tokenRoles",
"offset": 0,
"slot": "154",
"type": "t_mapping(t_uint256,t_mapping(t_uint256,t_mapping(t_enum(TokenRoles)4487,t_mapping(t_address,t_bool))))"
},
{
"astId": 4884,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "__gap",
"offset": 0,
"slot": "155",
"type": "t_array(t_uint256)49_storage"
},
{
"astId": 7193,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_paused",
"offset": 0,
"slot": "204",
"type": "t_bool"
},
{
"astId": 7195,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_canPause",
"offset": 1,
"slot": "204",
"type": "t_bool"
},
{
"astId": 7346,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "__gap",
"offset": 0,
"slot": "205",
"type": "t_array(t_uint256)49_storage"
},
{
"astId": 5648,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_billings",
"offset": 0,
"slot": "254",
"type": "t_mapping(t_enum(Billing)5627,t_uint256)"
},
{
"astId": 5776,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "__gap",
"offset": 0,
"slot": "255",
"type": "t_array(t_uint256)49_storage"
},
{
"astId": 4989,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_accessPoints",
"offset": 0,
"slot": "304",
"type": "t_mapping(t_string_memory_ptr,t_struct(AccessPoint)4984_storage)"
},
{
"astId": 4993,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_autoApproval",
"offset": 0,
"slot": "305",
"type": "t_mapping(t_uint256,t_bool)"
},
{
"astId": 5439,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "__gap",
"offset": 0,
"slot": "306",
"type": "t_array(t_uint256)49_storage"
},
{
"astId": 5868,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_appIds",
"offset": 0,
"slot": "355",
"type": "t_uint256"
},
{
"astId": 5873,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_apps",
"offset": 0,
"slot": "356",
"type": "t_mapping(t_uint256,t_struct(Token)7423_storage)"
},
{
"astId": 5877,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_tokenVerifier",
"offset": 0,
"slot": "357",
"type": "t_mapping(t_uint256,t_address)"
},
{
"astId": 5881,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "_tokenVerified",
"offset": 0,
"slot": "358",
"type": "t_mapping(t_uint256,t_bool)"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_array(t_uint256)44_storage": {
"base": "t_uint256",
"encoding": "inplace",
"label": "uint256[44]",
"numberOfBytes": "1408"
},
"t_array(t_uint256)49_storage": {
"base": "t_uint256",
"encoding": "inplace",
"label": "uint256[49]",
"numberOfBytes": "1568"
},
"t_array(t_uint256)50_storage": {
"base": "t_uint256",
"encoding": "inplace",
"label": "uint256[50]",
"numberOfBytes": "1600"
},
"t_bool": {
"encoding": "inplace",
"label": "bool",
"numberOfBytes": "1"
},
"t_enum(AccessPointCreationStatus)4970": {
"encoding": "inplace",
"label": "enum FleekAccessPoints.AccessPointCreationStatus",
"numberOfBytes": "1"
},
"t_enum(Billing)5627": {
"encoding": "inplace",
"label": "enum FleekBilling.Billing",
"numberOfBytes": "1"
},
"t_enum(CollectionRoles)4485": {
"encoding": "inplace",
"label": "enum FleekAccessControl.CollectionRoles",
"numberOfBytes": "1"
},
"t_enum(TokenRoles)4487": {
"encoding": "inplace",
"label": "enum FleekAccessControl.TokenRoles",
"numberOfBytes": "1"
},
"t_mapping(t_address,t_bool)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_mapping(t_address,t_mapping(t_address,t_bool))": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => mapping(address => bool))",
"numberOfBytes": "32",
"value": "t_mapping(t_address,t_bool)"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_mapping(t_enum(Billing)5627,t_uint256)": {
"encoding": "mapping",
"key": "t_enum(Billing)5627",
"label": "mapping(enum FleekBilling.Billing => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_mapping(t_enum(CollectionRoles)4485,t_mapping(t_address,t_bool))": {
"encoding": "mapping",
"key": "t_enum(CollectionRoles)4485",
"label": "mapping(enum FleekAccessControl.CollectionRoles => mapping(address => bool))",
"numberOfBytes": "32",
"value": "t_mapping(t_address,t_bool)"
},
"t_mapping(t_enum(CollectionRoles)4485,t_uint256)": {
"encoding": "mapping",
"key": "t_enum(CollectionRoles)4485",
"label": "mapping(enum FleekAccessControl.CollectionRoles => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_mapping(t_enum(TokenRoles)4487,t_mapping(t_address,t_bool))": {
"encoding": "mapping",
"key": "t_enum(TokenRoles)4487",
"label": "mapping(enum FleekAccessControl.TokenRoles => mapping(address => bool))",
"numberOfBytes": "32",
"value": "t_mapping(t_address,t_bool)"
},
"t_mapping(t_string_memory_ptr,t_struct(AccessPoint)4984_storage)": {
"encoding": "mapping",
"key": "t_string_memory_ptr",
"label": "mapping(string => struct FleekAccessPoints.AccessPoint)",
"numberOfBytes": "32",
"value": "t_struct(AccessPoint)4984_storage"
},
"t_mapping(t_uint256,t_address)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => address)",
"numberOfBytes": "32",
"value": "t_address"
},
"t_mapping(t_uint256,t_bool)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_mapping(t_uint256,t_mapping(t_enum(TokenRoles)4487,t_mapping(t_address,t_bool)))": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => mapping(enum FleekAccessControl.TokenRoles => mapping(address => bool)))",
"numberOfBytes": "32",
"value": "t_mapping(t_enum(TokenRoles)4487,t_mapping(t_address,t_bool))"
},
"t_mapping(t_uint256,t_mapping(t_uint256,t_mapping(t_enum(TokenRoles)4487,t_mapping(t_address,t_bool))))": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => mapping(uint256 => mapping(enum FleekAccessControl.TokenRoles => mapping(address => bool))))",
"numberOfBytes": "32",
"value": "t_mapping(t_uint256,t_mapping(t_enum(TokenRoles)4487,t_mapping(t_address,t_bool)))"
},
"t_mapping(t_uint256,t_struct(Build)7403_storage)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => struct IERCX.Build)",
"numberOfBytes": "32",
"value": "t_struct(Build)7403_storage"
},
"t_mapping(t_uint256,t_struct(Token)7423_storage)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => struct IERCX.Token)",
"numberOfBytes": "32",
"value": "t_struct(Token)7423_storage"
},
"t_mapping(t_uint256,t_uint256)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_string_memory_ptr": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_struct(AccessPoint)4984_storage": {
"encoding": "inplace",
"label": "struct FleekAccessPoints.AccessPoint",
"members": [
{
"astId": 4972,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "tokenId",
"offset": 0,
"slot": "0",
"type": "t_uint256"
},
{
"astId": 4974,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "score",
"offset": 0,
"slot": "1",
"type": "t_uint256"
},
{
"astId": 4976,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "contentVerified",
"offset": 0,
"slot": "2",
"type": "t_bool"
},
{
"astId": 4978,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "nameVerified",
"offset": 1,
"slot": "2",
"type": "t_bool"
},
{
"astId": 4980,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "owner",
"offset": 2,
"slot": "2",
"type": "t_address"
},
{
"astId": 4983,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "status",
"offset": 22,
"slot": "2",
"type": "t_enum(AccessPointCreationStatus)4970"
}
],
"numberOfBytes": "96"
},
"t_struct(Build)7403_storage": {
"encoding": "inplace",
"label": "struct IERCX.Build",
"members": [
{
"astId": 7396,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "commitHash",
"offset": 0,
"slot": "0",
"type": "t_string_storage"
},
{
"astId": 7398,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "gitRepository",
"offset": 0,
"slot": "1",
"type": "t_string_storage"
},
{
"astId": 7400,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "ipfsHash",
"offset": 0,
"slot": "2",
"type": "t_string_storage"
},
{
"astId": 7402,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "domain",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
}
],
"numberOfBytes": "128"
},
"t_struct(Token)7423_storage": {
"encoding": "inplace",
"label": "struct IERCX.Token",
"members": [
{
"astId": 7405,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "name",
"offset": 0,
"slot": "0",
"type": "t_string_storage"
},
{
"astId": 7407,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "description",
"offset": 0,
"slot": "1",
"type": "t_string_storage"
},
{
"astId": 7409,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "externalURL",
"offset": 0,
"slot": "2",
"type": "t_string_storage"
},
{
"astId": 7411,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "ENS",
"offset": 0,
"slot": "3",
"type": "t_string_storage"
},
{
"astId": 7413,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "logo",
"offset": 0,
"slot": "4",
"type": "t_string_storage"
},
{
"astId": 7415,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "color",
"offset": 0,
"slot": "5",
"type": "t_uint24"
},
{
"astId": 7417,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "currentBuild",
"offset": 0,
"slot": "6",
"type": "t_uint256"
},
{
"astId": 7422,
"contract": "contracts/FleekERC721.sol:FleekERC721",
"label": "builds",
"offset": 0,
"slot": "7",
"type": "t_mapping(t_uint256,t_struct(Build)7403_storage)"
}
],
"numberOfBytes": "256"
},
"t_uint24": {
"encoding": "inplace",
"label": "uint24",
"numberOfBytes": "3"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
},
"t_uint8": {
"encoding": "inplace",
"label": "uint8",
"numberOfBytes": "1"
}
}
},
"implementationAddress": "0x66Db6d191cd163F56197b767928A507dF8b47AA7"
}