Remove cache files, add/fix tests, update contract to remove/change methods

This commit is contained in:
EmperorOrokuSaki 2022-12-08 00:59:51 +03:30
parent afb1f1e73b
commit a0adff1702
39 changed files with 85 additions and 474768 deletions

6
.gitignore vendored
View File

@ -6,4 +6,8 @@ cache
artifacts
# NPM
package-lock.json
package-lock.json
# Foundry
./out
./forge-cache

View File

@ -84,15 +84,6 @@ contract FleekERC721 is ERC721, FleekAccessControl {
return tokenId;
}
function upgradeTokenBuild(
uint256 tokenId,
string memory commit,
string memory repository
) public payable requireTokenOwner(tokenId) {
_requireMinted(tokenId);
setTokenBuild(tokenId, commit, repository);
}
function tokenURI(
uint256 tokenId
) public view virtual override returns (string memory) {
@ -123,8 +114,7 @@ contract FleekERC721 is ERC721, FleekAccessControl {
uint256 tokenId,
address controller
) public requireTokenOwner(tokenId) {
_requireMinted(tokenId);
_grantRole(_tokenRole(tokenId, "CONTROLLER"), controller);
_addTokenController(tokenId, controller);
}
function _addTokenController(
@ -211,6 +201,7 @@ contract FleekERC721 is ERC721, FleekAccessControl {
function burn(
uint256 tokenId
) public virtual requireTokenController(tokenId) {
_requireMinted(tokenId);
require(
ownerOf(tokenId) == msg.sender,
"FleekERC721: must be token owner"

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,644 +0,0 @@
{
"abi": [],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Common.sol\":\"CommonBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Common.sol\":{\"keccak256\":\"0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b\",\"dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn\"]},\"lib/forge-std/src/Components.sol\":{\"keccak256\":\"0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd\",\"dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xde2bdee8e0e530de3269da50ebba83f4f90dde817971488980b720281e3cde4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb3f05bb06b654db43f4ce38e22aa7e2296ee00615df5329623c08c9ac030f8d\",\"dweb:/ipfs/QmdKwTpFsTiDFmc8zGwbPRu8mDs4oiKdZvzSj3WpiiGaez\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xf0c5c17c4cdfd0de659cf5e58e0e1611b6ee53900d3ab8b07b871d71d0b37bc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21ffda3891e7480d5fdbf7f5e9d539f0ed76204bca69738f8ee006395ef1e23e\",\"dweb:/ipfs/Qmbhbn8zVXrCyvhvoQ5AUSj3usVGqMbMSEHYkNPdbQKBxt\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x2291ee8f379552b86f34d98acb248d50442c7d4ab94aed03f1c8ddb6aea6852d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ca6ca6fe35692428b507008b24e4ec4ba0cabaf58110fd0b4456a42e0166bdc\",\"dweb:/ipfs/QmUcSeXfYMyusrWxEdPRMeWFYhf9qD6YJaZXCVo29F4eus\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a\",\"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x216818221765c43713791708d7dc83fcd5ada81766c9d4ce54551528c191a59f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f03d0ef065ce600e5922f3e9c92f0f54ff7c12895a250fa97d83e9ee38e7e2b\",\"dweb:/ipfs/QmX59m9mNRNEhjhEZnxbDirniesi26pnDaNzF5hPB4A3E8\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xf4442ded918d167635adc30ba3c451d45666c89b38e0eec2adaf0857b49a72f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4cb181bd626fe852a36f9b1cf2d79ef0fa9d2bf2cbf0ec86f33f5bf492c0b69\",\"dweb:/ipfs/QmaZKevWdZbjoTB7qtzKjP3dZhiUGymJc4Wb9qkNMewxjB\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa\",\"dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"lib/forge-std/src/Common.sol": "CommonBase"
},
"libraries": {},
"viaIR": true
},
"sources": {
"lib/forge-std/lib/ds-test/src/test.sol": {
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54",
"urls": [
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5",
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"
],
"license": "GPL-3.0-or-later"
},
"lib/forge-std/src/Common.sol": {
"keccak256": "0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0",
"urls": [
"bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b",
"dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn"
],
"license": "MIT"
},
"lib/forge-std/src/Components.sol": {
"keccak256": "0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149",
"urls": [
"bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd",
"dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3"
],
"license": "MIT"
},
"lib/forge-std/src/StdAssertions.sol": {
"keccak256": "0xde2bdee8e0e530de3269da50ebba83f4f90dde817971488980b720281e3cde4d",
"urls": [
"bzz-raw://cb3f05bb06b654db43f4ce38e22aa7e2296ee00615df5329623c08c9ac030f8d",
"dweb:/ipfs/QmdKwTpFsTiDFmc8zGwbPRu8mDs4oiKdZvzSj3WpiiGaez"
],
"license": "MIT"
},
"lib/forge-std/src/StdCheats.sol": {
"keccak256": "0xf0c5c17c4cdfd0de659cf5e58e0e1611b6ee53900d3ab8b07b871d71d0b37bc6",
"urls": [
"bzz-raw://21ffda3891e7480d5fdbf7f5e9d539f0ed76204bca69738f8ee006395ef1e23e",
"dweb:/ipfs/Qmbhbn8zVXrCyvhvoQ5AUSj3usVGqMbMSEHYkNPdbQKBxt"
],
"license": "MIT"
},
"lib/forge-std/src/StdError.sol": {
"keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77",
"urls": [
"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6",
"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"
],
"license": "MIT"
},
"lib/forge-std/src/StdJson.sol": {
"keccak256": "0x2291ee8f379552b86f34d98acb248d50442c7d4ab94aed03f1c8ddb6aea6852d",
"urls": [
"bzz-raw://1ca6ca6fe35692428b507008b24e4ec4ba0cabaf58110fd0b4456a42e0166bdc",
"dweb:/ipfs/QmUcSeXfYMyusrWxEdPRMeWFYhf9qD6YJaZXCVo29F4eus"
],
"license": "MIT"
},
"lib/forge-std/src/StdMath.sol": {
"keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2",
"urls": [
"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92",
"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"
],
"license": "MIT"
},
"lib/forge-std/src/StdStorage.sol": {
"keccak256": "0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5",
"urls": [
"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a",
"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn"
],
"license": "MIT"
},
"lib/forge-std/src/StdUtils.sol": {
"keccak256": "0x216818221765c43713791708d7dc83fcd5ada81766c9d4ce54551528c191a59f",
"urls": [
"bzz-raw://3f03d0ef065ce600e5922f3e9c92f0f54ff7c12895a250fa97d83e9ee38e7e2b",
"dweb:/ipfs/QmX59m9mNRNEhjhEZnxbDirniesi26pnDaNzF5hPB4A3E8"
],
"license": "MIT"
},
"lib/forge-std/src/Vm.sol": {
"keccak256": "0xf4442ded918d167635adc30ba3c451d45666c89b38e0eec2adaf0857b49a72f7",
"urls": [
"bzz-raw://b4cb181bd626fe852a36f9b1cf2d79ef0fa9d2bf2cbf0ec86f33f5bf492c0b69",
"dweb:/ipfs/QmaZKevWdZbjoTB7qtzKjP3dZhiUGymJc4Wb9qkNMewxjB"
],
"license": "MIT"
},
"lib/forge-std/src/console.sol": {
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
"urls": [
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
],
"license": "MIT"
},
"lib/forge-std/src/console2.sol": {
"keccak256": "0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f",
"urls": [
"bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa",
"dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib/forge-std/src/Common.sol",
"id": 2545,
"exportedSymbols": {
"CommonBase": [
2544
],
"StdStorage": [
6388
],
"Vm": [
9256
]
},
"nodeType": "SourceUnit",
"src": "32:429:3",
"nodes": [
{
"id": 2514,
"nodeType": "PragmaDirective",
"src": "32:31:3",
"nodes": [],
"literals": [
"solidity",
">=",
"0.6",
".2",
"<",
"0.9",
".0"
]
},
{
"id": 2517,
"nodeType": "ImportDirective",
"src": "65:48:3",
"nodes": [],
"absolutePath": "lib/forge-std/src/Components.sol",
"file": "./Components.sol",
"nameLocation": "-1:-1:-1",
"scope": 2545,
"sourceUnit": 2557,
"symbolAliases": [
{
"foreign": {
"id": 2515,
"name": "StdStorage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6388,
"src": "73:10:3",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 2516,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9256,
"src": "85:2:3",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 2544,
"nodeType": "ContractDefinition",
"src": "115:345:3",
"nodes": [
{
"id": 2531,
"nodeType": "VariableDeclaration",
"src": "150:94:3",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "VM_ADDRESS",
"nameLocation": "176:10:3",
"scope": 2544,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2518,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "150:7:3",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"hexValue": "6865766d20636865617420636f6465",
"id": 2526,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "223:17:3",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d",
"typeString": "literal_string \"hevm cheat code\""
},
"value": "hevm cheat code"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d",
"typeString": "literal_string \"hevm cheat code\""
}
],
"id": 2525,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "213:9:3",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 2527,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "213:28:3",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 2524,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "205:7:3",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 2523,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "205:7:3",
"typeDescriptions": {}
}
},
"id": 2528,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "205:37:3",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 2522,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "197:7:3",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 2521,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "197:7:3",
"typeDescriptions": {}
}
},
"id": 2529,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "197:46:3",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 2520,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "189:7:3",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 2519,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "189:7:3",
"typeDescriptions": {}
}
},
"id": 2530,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "189:55:3",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"id": 2534,
"nodeType": "VariableDeclaration",
"src": "250:126:3",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "UINT256_MAX",
"nameLocation": "276:11:3",
"scope": 2544,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2532,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "250:7:3",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"hexValue": "313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335",
"id": 2533,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "298:78:3",
"typeDescriptions": {
"typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1",
"typeString": "int_const 1157...(70 digits omitted)...9935"
},
"value": "115792089237316195423570985008687907853269984665640564039457584007913129639935"
},
"visibility": "internal"
},
{
"id": 2537,
"nodeType": "VariableDeclaration",
"src": "383:28:3",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "stdstore",
"nameLocation": "403:8:3",
"scope": 2544,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage",
"typeString": "struct StdStorage"
},
"typeName": {
"id": 2536,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 2535,
"name": "StdStorage",
"nameLocations": [
"383:10:3"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 6388,
"src": "383:10:3"
},
"referencedDeclaration": 6388,
"src": "383:10:3",
"typeDescriptions": {
"typeIdentifier": "t_struct$_StdStorage_$6388_storage_ptr",
"typeString": "struct StdStorage"
}
},
"visibility": "internal"
},
{
"id": 2543,
"nodeType": "VariableDeclaration",
"src": "417:40:3",
"nodes": [],
"constant": true,
"mutability": "constant",
"name": "vm",
"nameLocation": "438:2:3",
"scope": 2544,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
},
"typeName": {
"id": 2539,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 2538,
"name": "Vm",
"nameLocations": [
"417:2:3"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 9256,
"src": "417:2:3"
},
"referencedDeclaration": 9256,
"src": "417:2:3",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"value": {
"arguments": [
{
"id": 2541,
"name": "VM_ADDRESS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2531,
"src": "446:10:3",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 2540,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9256,
"src": "443:2:3",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Vm_$9256_$",
"typeString": "type(contract Vm)"
}
},
"id": 2542,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "443:14:3",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Vm_$9256",
"typeString": "contract Vm"
}
},
"visibility": "internal"
}
],
"abstract": true,
"baseContracts": [],
"canonicalName": "CommonBase",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
2544
],
"name": "CommonBase",
"nameLocation": "133:10:3",
"scope": 2545,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 3
}

View File

@ -1,213 +0,0 @@
{
"abi": [],
"bytecode": {
"object": "0x",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"linkReferences": {}
},
"ast": {
"absolutePath": "lib/forge-std/src/Components.sol",
"id": 2557,
"exportedSymbols": {
"DSTest": [
2512
],
"StdAssertions": [
3370
],
"StdCheats": [
5483
],
"StdCheatsSafe": [
5094
],
"StdStorage": [
6388
],
"StdUtils": [
8251
],
"Vm": [
9256
],
"VmSafe": [
8931
],
"console": [
17320
],
"console2": [
25385
],
"stdError": [
5549
],
"stdJson": [
6215
],
"stdMath": [
6357
],
"stdStorage": [
7822
],
"stdStorageSafe": [
7281
]
},
"nodeType": "SourceUnit",
"src": "32:282:4",
"nodes": [
{
"id": 2546,
"nodeType": "PragmaDirective",
"src": "32:31:4",
"nodes": [],
"literals": [
"solidity",
">=",
"0.6",
".2",
"<",
"0.9",
".0"
]
},
{
"id": 2547,
"nodeType": "ImportDirective",
"src": "65:23:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/console.sol",
"file": "./console.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 17321,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2548,
"nodeType": "ImportDirective",
"src": "89:24:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/console2.sol",
"file": "./console2.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 25386,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2549,
"nodeType": "ImportDirective",
"src": "114:29:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/StdAssertions.sol",
"file": "./StdAssertions.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 3371,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2550,
"nodeType": "ImportDirective",
"src": "144:25:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/StdCheats.sol",
"file": "./StdCheats.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 5484,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2551,
"nodeType": "ImportDirective",
"src": "170:24:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/StdError.sol",
"file": "./StdError.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 5550,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2552,
"nodeType": "ImportDirective",
"src": "195:23:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/StdJson.sol",
"file": "./StdJson.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 6216,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2553,
"nodeType": "ImportDirective",
"src": "219:23:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/StdMath.sol",
"file": "./StdMath.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 6358,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2554,
"nodeType": "ImportDirective",
"src": "243:26:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/StdStorage.sol",
"file": "./StdStorage.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 7823,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2555,
"nodeType": "ImportDirective",
"src": "270:24:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/StdUtils.sol",
"file": "./StdUtils.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 8252,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 2556,
"nodeType": "ImportDirective",
"src": "295:18:4",
"nodes": [],
"absolutePath": "lib/forge-std/src/Vm.sol",
"file": "./Vm.sol",
"nameLocation": "-1:-1:-1",
"scope": 2557,
"sourceUnit": 9257,
"symbolAliases": [],
"unitAlias": ""
}
],
"license": "MIT"
},
"id": 4
}

View File

@ -1,314 +0,0 @@
{
"abi": [],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"node_modules/@openzeppelin/contracts/utils/Context.sol": "Context"
},
"libraries": {},
"viaIR": true
},
"sources": {
"node_modules/@openzeppelin/contracts/utils/Context.sol": {
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
"urls": [
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "node_modules/@openzeppelin/contracts/utils/Context.sol",
"id": 27280,
"exportedSymbols": {
"Context": [
27279
]
},
"nodeType": "SourceUnit",
"src": "86:758:24",
"nodes": [
{
"id": 27259,
"nodeType": "PragmaDirective",
"src": "86:23:24",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".0"
]
},
{
"id": 27279,
"nodeType": "ContractDefinition",
"src": "608:235:24",
"nodes": [
{
"id": 27269,
"nodeType": "FunctionDefinition",
"src": "640:96:24",
"nodes": [],
"body": {
"id": 27268,
"nodeType": "Block",
"src": "702:34:24",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"id": 27265,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "719:3:24",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 27266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "723:6:24",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "719:10:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 27264,
"id": 27267,
"nodeType": "Return",
"src": "712:17:24"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_msgSender",
"nameLocation": "649:10:24",
"parameters": {
"id": 27261,
"nodeType": "ParameterList",
"parameters": [],
"src": "659:2:24"
},
"returnParameters": {
"id": 27264,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27263,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 27269,
"src": "693:7:24",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 27262,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "693:7:24",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "692:9:24"
},
"scope": 27279,
"stateMutability": "view",
"virtual": true,
"visibility": "internal"
},
{
"id": 27278,
"nodeType": "FunctionDefinition",
"src": "742:99:24",
"nodes": [],
"body": {
"id": 27277,
"nodeType": "Block",
"src": "809:32:24",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"id": 27274,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "826:3:24",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 27275,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "830:4:24",
"memberName": "data",
"nodeType": "MemberAccess",
"src": "826:8:24",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"functionReturnParameters": 27273,
"id": 27276,
"nodeType": "Return",
"src": "819:15:24"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_msgData",
"nameLocation": "751:8:24",
"parameters": {
"id": 27270,
"nodeType": "ParameterList",
"parameters": [],
"src": "759:2:24"
},
"returnParameters": {
"id": 27273,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27272,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 27278,
"src": "793:14:24",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 27271,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "793:5:24",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "792:16:24"
},
"scope": 27279,
"stateMutability": "view",
"virtual": true,
"visibility": "internal"
}
],
"abstract": true,
"baseContracts": [],
"canonicalName": "Context",
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 27260,
"nodeType": "StructuredDocumentation",
"src": "111:496:24",
"text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."
},
"fullyImplemented": true,
"linearizedBaseContracts": [
27279
],
"name": "Context",
"nameLocation": "626:7:24",
"scope": 27280,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 24
}

View File

@ -1,924 +0,0 @@
{
"abi": [],
"bytecode": {
"object": "0x60808060405234601757603a9081601d823930815050f35b600080fdfe600080fdfea2646970667358221220bf0ddfe91e11913198c1ecf5498e1f03f0e472589cb8e27394f39a0a55b3e22a64736f6c63430008110033",
"sourceMap": "424:971:25:-:0;;;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x600080fdfea2646970667358221220bf0ddfe91e11913198c1ecf5498e1f03f0e472589cb8e27394f39a0a55b3e22a64736f6c63430008110033",
"sourceMap": "424:971:25:-:0;;",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\",\"details\":\"Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number of elements in a mapping, issuing ERC721 ids, or counting request ids. Include with `using Counters for Counters.Counter;`\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Counters\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/Counters.sol\":\"Counters\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"node_modules/@openzeppelin/contracts/utils/Counters.sol": "Counters"
},
"libraries": {},
"viaIR": true
},
"sources": {
"node_modules/@openzeppelin/contracts/utils/Counters.sol": {
"keccak256": "0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1",
"urls": [
"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee",
"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "node_modules/@openzeppelin/contracts/utils/Counters.sol",
"id": 27354,
"exportedSymbols": {
"Counters": [
27353
]
},
"nodeType": "SourceUnit",
"src": "87:1309:25",
"nodes": [
{
"id": 27281,
"nodeType": "PragmaDirective",
"src": "87:23:25",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".0"
]
},
{
"id": 27353,
"nodeType": "ContractDefinition",
"src": "424:971:25",
"nodes": [
{
"id": 27285,
"nodeType": "StructDefinition",
"src": "447:374:25",
"nodes": [],
"canonicalName": "Counters.Counter",
"members": [
{
"constant": false,
"id": 27284,
"mutability": "mutable",
"name": "_value",
"nameLocation": "794:6:25",
"nodeType": "VariableDeclaration",
"scope": 27285,
"src": "786:14:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 27283,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "786:7:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"name": "Counter",
"nameLocation": "454:7:25",
"scope": 27353,
"visibility": "public"
},
{
"id": 27297,
"nodeType": "FunctionDefinition",
"src": "827:112:25",
"nodes": [],
"body": {
"id": 27296,
"nodeType": "Block",
"src": "901:38:25",
"nodes": [],
"statements": [
{
"expression": {
"expression": {
"id": 27293,
"name": "counter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27288,
"src": "918:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter storage pointer"
}
},
"id": 27294,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "926:6:25",
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 27284,
"src": "918:14:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 27292,
"id": 27295,
"nodeType": "Return",
"src": "911:21:25"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "current",
"nameLocation": "836:7:25",
"parameters": {
"id": 27289,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27288,
"mutability": "mutable",
"name": "counter",
"nameLocation": "860:7:25",
"nodeType": "VariableDeclaration",
"scope": 27297,
"src": "844:23:25",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
},
"typeName": {
"id": 27287,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 27286,
"name": "Counter",
"nameLocations": [
"844:7:25"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27285,
"src": "844:7:25"
},
"referencedDeclaration": 27285,
"src": "844:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
}
},
"visibility": "internal"
}
],
"src": "843:25:25"
},
"returnParameters": {
"id": 27292,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27291,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 27297,
"src": "892:7:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 27290,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "892:7:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "891:9:25"
},
"scope": 27353,
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"id": 27311,
"nodeType": "FunctionDefinition",
"src": "945:123:25",
"nodes": [],
"body": {
"id": 27310,
"nodeType": "Block",
"src": "998:70:25",
"nodes": [],
"statements": [
{
"id": 27309,
"nodeType": "UncheckedBlock",
"src": "1008:54:25",
"statements": [
{
"expression": {
"id": 27307,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 27303,
"name": "counter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27300,
"src": "1032:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter storage pointer"
}
},
"id": 27305,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "1040:6:25",
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 27284,
"src": "1032:14:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"hexValue": "31",
"id": 27306,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1050:1:25",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "1032:19:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 27308,
"nodeType": "ExpressionStatement",
"src": "1032:19:25"
}
]
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "increment",
"nameLocation": "954:9:25",
"parameters": {
"id": 27301,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27300,
"mutability": "mutable",
"name": "counter",
"nameLocation": "980:7:25",
"nodeType": "VariableDeclaration",
"scope": 27311,
"src": "964:23:25",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
},
"typeName": {
"id": 27299,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 27298,
"name": "Counter",
"nameLocations": [
"964:7:25"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27285,
"src": "964:7:25"
},
"referencedDeclaration": 27285,
"src": "964:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
}
},
"visibility": "internal"
}
],
"src": "963:25:25"
},
"returnParameters": {
"id": 27302,
"nodeType": "ParameterList",
"parameters": [],
"src": "998:0:25"
},
"scope": 27353,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 27339,
"nodeType": "FunctionDefinition",
"src": "1074:229:25",
"nodes": [],
"body": {
"id": 27338,
"nodeType": "Block",
"src": "1127:176:25",
"nodes": [],
"statements": [
{
"assignments": [
27318
],
"declarations": [
{
"constant": false,
"id": 27318,
"mutability": "mutable",
"name": "value",
"nameLocation": "1145:5:25",
"nodeType": "VariableDeclaration",
"scope": 27338,
"src": "1137:13:25",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 27317,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1137:7:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 27321,
"initialValue": {
"expression": {
"id": 27319,
"name": "counter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27314,
"src": "1153:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter storage pointer"
}
},
"id": 27320,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1161:6:25",
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 27284,
"src": "1153:14:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1137:30:25"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 27325,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 27323,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27318,
"src": "1185:5:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "30",
"id": 27324,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1193:1:25",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1185:9:25",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "436f756e7465723a2064656372656d656e74206f766572666c6f77",
"id": 27326,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1196:29:25",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f",
"typeString": "literal_string \"Counter: decrement overflow\""
},
"value": "Counter: decrement overflow"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_1dfd0d5389474d871b8e8929aab9d4def041f55f90f625754fb5f9a9ba08af6f",
"typeString": "literal_string \"Counter: decrement overflow\""
}
],
"id": 27322,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1177:7:25",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 27327,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1177:49:25",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 27328,
"nodeType": "ExpressionStatement",
"src": "1177:49:25"
},
{
"id": 27337,
"nodeType": "UncheckedBlock",
"src": "1236:61:25",
"statements": [
{
"expression": {
"id": 27335,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 27329,
"name": "counter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27314,
"src": "1260:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter storage pointer"
}
},
"id": 27331,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "1268:6:25",
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 27284,
"src": "1260:14:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 27334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 27332,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27318,
"src": "1277:5:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"hexValue": "31",
"id": 27333,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1285:1:25",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "1277:9:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1260:26:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 27336,
"nodeType": "ExpressionStatement",
"src": "1260:26:25"
}
]
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "decrement",
"nameLocation": "1083:9:25",
"parameters": {
"id": 27315,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27314,
"mutability": "mutable",
"name": "counter",
"nameLocation": "1109:7:25",
"nodeType": "VariableDeclaration",
"scope": 27339,
"src": "1093:23:25",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
},
"typeName": {
"id": 27313,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 27312,
"name": "Counter",
"nameLocations": [
"1093:7:25"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27285,
"src": "1093:7:25"
},
"referencedDeclaration": 27285,
"src": "1093:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
}
},
"visibility": "internal"
}
],
"src": "1092:25:25"
},
"returnParameters": {
"id": 27316,
"nodeType": "ParameterList",
"parameters": [],
"src": "1127:0:25"
},
"scope": 27353,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 27352,
"nodeType": "FunctionDefinition",
"src": "1309:84:25",
"nodes": [],
"body": {
"id": 27351,
"nodeType": "Block",
"src": "1358:35:25",
"nodes": [],
"statements": [
{
"expression": {
"id": 27349,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 27345,
"name": "counter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27342,
"src": "1368:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter storage pointer"
}
},
"id": 27347,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "1376:6:25",
"memberName": "_value",
"nodeType": "MemberAccess",
"referencedDeclaration": 27284,
"src": "1368:14:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "30",
"id": 27348,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1385:1:25",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1368:18:25",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 27350,
"nodeType": "ExpressionStatement",
"src": "1368:18:25"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "reset",
"nameLocation": "1318:5:25",
"parameters": {
"id": 27343,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27342,
"mutability": "mutable",
"name": "counter",
"nameLocation": "1340:7:25",
"nodeType": "VariableDeclaration",
"scope": 27352,
"src": "1324:23:25",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
},
"typeName": {
"id": 27341,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 27340,
"name": "Counter",
"nameLocations": [
"1324:7:25"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27285,
"src": "1324:7:25"
},
"referencedDeclaration": 27285,
"src": "1324:7:25",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27285_storage_ptr",
"typeString": "struct Counters.Counter"
}
},
"visibility": "internal"
}
],
"src": "1323:25:25"
},
"returnParameters": {
"id": 27344,
"nodeType": "ParameterList",
"parameters": [],
"src": "1358:0:25"
},
"scope": 27353,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "Counters",
"contractDependencies": [],
"contractKind": "library",
"documentation": {
"id": 27282,
"nodeType": "StructuredDocumentation",
"src": "112:311:25",
"text": " @title Counters\n @author Matt Condon (@shrugs)\n @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number\n of elements in a mapping, issuing ERC721 ids, or counting request ids.\n Include with `using Counters for Counters.Counter;`"
},
"fullyImplemented": true,
"linearizedBaseContracts": [
27353
],
"name": "Counters",
"nameLocation": "432:8:25",
"scope": 27354,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 25
}

View File

@ -1,415 +0,0 @@
{
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"supportsInterface(bytes4)": "01ffc9a7"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ``` Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"supportsInterface(bytes4)": {
"details": "See {IERC165-supportsInterface}."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": "ERC165"
},
"libraries": {},
"viaIR": true
},
"sources": {
"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": {
"keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b",
"urls": [
"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d",
"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
"urls": [
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol",
"id": 27553,
"exportedSymbols": {
"ERC165": [
27552
],
"IERC165": [
27564
]
},
"nodeType": "SourceUnit",
"src": "99:888:27",
"nodes": [
{
"id": 27530,
"nodeType": "PragmaDirective",
"src": "99:23:27",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".0"
]
},
{
"id": 27531,
"nodeType": "ImportDirective",
"src": "124:23:27",
"nodes": [],
"absolutePath": "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol",
"file": "./IERC165.sol",
"nameLocation": "-1:-1:-1",
"scope": 27553,
"sourceUnit": 27565,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 27552,
"nodeType": "ContractDefinition",
"src": "726:260:27",
"nodes": [
{
"id": 27551,
"nodeType": "FunctionDefinition",
"src": "829:155:27",
"nodes": [],
"body": {
"id": 27550,
"nodeType": "Block",
"src": "920:64:27",
"nodes": [],
"statements": [
{
"expression": {
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 27548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 27543,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27537,
"src": "937:11:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 27545,
"name": "IERC165",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27564,
"src": "957:7:27",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IERC165_$27564_$",
"typeString": "type(contract IERC165)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_type$_t_contract$_IERC165_$27564_$",
"typeString": "type(contract IERC165)"
}
],
"id": 27544,
"name": "type",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -27,
"src": "952:4:27",
"typeDescriptions": {
"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 27546,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "952:13:27",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$27564",
"typeString": "type(contract IERC165)"
}
},
"id": 27547,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "966:11:27",
"memberName": "interfaceId",
"nodeType": "MemberAccess",
"src": "952:25:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "937:40:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 27542,
"id": 27549,
"nodeType": "Return",
"src": "930:47:27"
}
]
},
"baseFunctions": [
27563
],
"documentation": {
"id": 27535,
"nodeType": "StructuredDocumentation",
"src": "768:56:27",
"text": " @dev See {IERC165-supportsInterface}."
},
"functionSelector": "01ffc9a7",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "838:17:27",
"overrides": {
"id": 27539,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "896:8:27"
},
"parameters": {
"id": 27538,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27537,
"mutability": "mutable",
"name": "interfaceId",
"nameLocation": "863:11:27",
"nodeType": "VariableDeclaration",
"scope": 27551,
"src": "856:18:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 27536,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "856:6:27",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "855:20:27"
},
"returnParameters": {
"id": 27542,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27541,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 27551,
"src": "914:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 27540,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "914:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "913:6:27"
},
"scope": 27552,
"stateMutability": "view",
"virtual": true,
"visibility": "public"
}
],
"abstract": true,
"baseContracts": [
{
"baseName": {
"id": 27533,
"name": "IERC165",
"nameLocations": [
"754:7:27"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27564,
"src": "754:7:27"
},
"id": 27534,
"nodeType": "InheritanceSpecifier",
"src": "754:7:27"
}
],
"canonicalName": "ERC165",
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 27532,
"nodeType": "StructuredDocumentation",
"src": "149:576:27",
"text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```\n Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation."
},
"fullyImplemented": true,
"linearizedBaseContracts": [
27552,
27564
],
"name": "ERC165",
"nameLocation": "744:6:27",
"scope": 27553,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 27
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,257 +0,0 @@
{
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"supportsInterface(bytes4)": "01ffc9a7"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"supportsInterface(bytes4)": {
"details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": "IERC165"
},
"libraries": {},
"viaIR": true
},
"sources": {
"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
"urls": [
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol",
"id": 27565,
"exportedSymbols": {
"IERC165": [
27564
]
},
"nodeType": "SourceUnit",
"src": "100:753:28",
"nodes": [
{
"id": 27554,
"nodeType": "PragmaDirective",
"src": "100:23:28",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".0"
]
},
{
"id": 27564,
"nodeType": "ContractDefinition",
"src": "405:447:28",
"nodes": [
{
"id": 27563,
"nodeType": "FunctionDefinition",
"src": "774:76:28",
"nodes": [],
"documentation": {
"id": 27556,
"nodeType": "StructuredDocumentation",
"src": "429:340:28",
"text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas."
},
"functionSelector": "01ffc9a7",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "783:17:28",
"parameters": {
"id": 27559,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27558,
"mutability": "mutable",
"name": "interfaceId",
"nameLocation": "808:11:28",
"nodeType": "VariableDeclaration",
"scope": 27563,
"src": "801:18:28",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 27557,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "801:6:28",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "800:20:28"
},
"returnParameters": {
"id": 27562,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 27561,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 27563,
"src": "844:4:28",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 27560,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "844:4:28",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "843:6:28"
},
"scope": 27564,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IERC165",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 27555,
"nodeType": "StructuredDocumentation",
"src": "125:279:28",
"text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}."
},
"fullyImplemented": false,
"linearizedBaseContracts": [
27564
],
"name": "IERC165",
"nameLocation": "415:7:28",
"scope": 27565,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 28
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,370 +0,0 @@
{
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {
"onERC721Received(address,address,uint256,bytes)": "150b7a02"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":\"IERC721Receiver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "onERC721Received",
"outputs": [
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"onERC721Received(address,address,uint256,bytes)": {
"details": "Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": "IERC721Receiver"
},
"libraries": {},
"viaIR": true
},
"sources": {
"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": {
"keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da",
"urls": [
"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708",
"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
"id": 26854,
"exportedSymbols": {
"IERC721Receiver": [
26853
]
},
"nodeType": "SourceUnit",
"src": "116:871:20",
"nodes": [
{
"id": 26837,
"nodeType": "PragmaDirective",
"src": "116:23:20",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".0"
]
},
{
"id": 26853,
"nodeType": "ContractDefinition",
"src": "294:692:20",
"nodes": [
{
"id": 26852,
"nodeType": "FunctionDefinition",
"src": "824:160:20",
"nodes": [],
"documentation": {
"id": 26839,
"nodeType": "StructuredDocumentation",
"src": "326:493:20",
"text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`."
},
"functionSelector": "150b7a02",
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "onERC721Received",
"nameLocation": "833:16:20",
"parameters": {
"id": 26848,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 26841,
"mutability": "mutable",
"name": "operator",
"nameLocation": "867:8:20",
"nodeType": "VariableDeclaration",
"scope": 26852,
"src": "859:16:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26840,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "859:7:20",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 26843,
"mutability": "mutable",
"name": "from",
"nameLocation": "893:4:20",
"nodeType": "VariableDeclaration",
"scope": 26852,
"src": "885:12:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 26842,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "885:7:20",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 26845,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "915:7:20",
"nodeType": "VariableDeclaration",
"scope": 26852,
"src": "907:15:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 26844,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "907:7:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 26847,
"mutability": "mutable",
"name": "data",
"nameLocation": "947:4:20",
"nodeType": "VariableDeclaration",
"scope": 26852,
"src": "932:19:20",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 26846,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "932:5:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "849:108:20"
},
"returnParameters": {
"id": 26851,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 26850,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 26852,
"src": "976:6:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 26849,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "976:6:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "975:8:20"
},
"scope": 26853,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"abstract": false,
"baseContracts": [],
"canonicalName": "IERC721Receiver",
"contractDependencies": [],
"contractKind": "interface",
"documentation": {
"id": 26838,
"nodeType": "StructuredDocumentation",
"src": "141:152:20",
"text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts."
},
"fullyImplemented": false,
"linearizedBaseContracts": [
26853
],
"name": "IERC721Receiver",
"nameLocation": "304:15:20",
"scope": 26854,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 20
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,567 +0,0 @@
{
"abi": [],
"bytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x",
"sourceMap": "",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/Test.sol\":\"TestBase\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"lib/forge-std/src/Common.sol\":{\"keccak256\":\"0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b\",\"dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn\"]},\"lib/forge-std/src/Components.sol\":{\"keccak256\":\"0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd\",\"dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xde2bdee8e0e530de3269da50ebba83f4f90dde817971488980b720281e3cde4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cb3f05bb06b654db43f4ce38e22aa7e2296ee00615df5329623c08c9ac030f8d\",\"dweb:/ipfs/QmdKwTpFsTiDFmc8zGwbPRu8mDs4oiKdZvzSj3WpiiGaez\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xf0c5c17c4cdfd0de659cf5e58e0e1611b6ee53900d3ab8b07b871d71d0b37bc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21ffda3891e7480d5fdbf7f5e9d539f0ed76204bca69738f8ee006395ef1e23e\",\"dweb:/ipfs/Qmbhbn8zVXrCyvhvoQ5AUSj3usVGqMbMSEHYkNPdbQKBxt\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x2291ee8f379552b86f34d98acb248d50442c7d4ab94aed03f1c8ddb6aea6852d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ca6ca6fe35692428b507008b24e4ec4ba0cabaf58110fd0b4456a42e0166bdc\",\"dweb:/ipfs/QmUcSeXfYMyusrWxEdPRMeWFYhf9qD6YJaZXCVo29F4eus\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a\",\"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x216818221765c43713791708d7dc83fcd5ada81766c9d4ce54551528c191a59f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f03d0ef065ce600e5922f3e9c92f0f54ff7c12895a250fa97d83e9ee38e7e2b\",\"dweb:/ipfs/QmX59m9mNRNEhjhEZnxbDirniesi26pnDaNzF5hPB4A3E8\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x6dc670615c9d04adf786ed4f18095b2142311c93dfda6459732da919d9113c17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4eb56f37ea1c9bb72d2064b5e8fd134dd871dd0a9a3e081995c0fa52dd82c74\",\"dweb:/ipfs/QmbQZeD1RfPWjUSZ8iEdUYoLBn1PuSHvSYzZ7V9rLrRK4T\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xf4442ded918d167635adc30ba3c451d45666c89b38e0eec2adaf0857b49a72f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4cb181bd626fe852a36f9b1cf2d79ef0fa9d2bf2cbf0ec86f33f5bf492c0b69\",\"dweb:/ipfs/QmaZKevWdZbjoTB7qtzKjP3dZhiUGymJc4Wb9qkNMewxjB\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa\",\"dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"lib/forge-std/src/Test.sol": "TestBase"
},
"libraries": {},
"viaIR": true
},
"sources": {
"lib/forge-std/lib/ds-test/src/test.sol": {
"keccak256": "0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54",
"urls": [
"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5",
"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"
],
"license": "GPL-3.0-or-later"
},
"lib/forge-std/src/Common.sol": {
"keccak256": "0x3ed7f49e907eaf339c3bb0b79a81d303d0f9e37aa5b8a9854c0cbfc3ad9a3ef0",
"urls": [
"bzz-raw://01c2532fb5fea32c6dc165518f2c4918af25d9139d17c11da330414c9797a70b",
"dweb:/ipfs/QmV4r8a1e9Rgu2xoigVCuSv3fZ737wD2DXbV6ZmHXVUtDn"
],
"license": "MIT"
},
"lib/forge-std/src/Components.sol": {
"keccak256": "0xd3b8ba6df58174d5d650a668dfa49eeee28b2b855514b9e793e1c0b69d747149",
"urls": [
"bzz-raw://cce2b2ca79d5ce993b91358ed3d588396295e0aba9bb923481c1ffa5058a0dcd",
"dweb:/ipfs/QmPNymteQmLWk7SqQhNsF6Rbc3xFPY7xGb4fBKravHLXD3"
],
"license": "MIT"
},
"lib/forge-std/src/StdAssertions.sol": {
"keccak256": "0xde2bdee8e0e530de3269da50ebba83f4f90dde817971488980b720281e3cde4d",
"urls": [
"bzz-raw://cb3f05bb06b654db43f4ce38e22aa7e2296ee00615df5329623c08c9ac030f8d",
"dweb:/ipfs/QmdKwTpFsTiDFmc8zGwbPRu8mDs4oiKdZvzSj3WpiiGaez"
],
"license": "MIT"
},
"lib/forge-std/src/StdCheats.sol": {
"keccak256": "0xf0c5c17c4cdfd0de659cf5e58e0e1611b6ee53900d3ab8b07b871d71d0b37bc6",
"urls": [
"bzz-raw://21ffda3891e7480d5fdbf7f5e9d539f0ed76204bca69738f8ee006395ef1e23e",
"dweb:/ipfs/Qmbhbn8zVXrCyvhvoQ5AUSj3usVGqMbMSEHYkNPdbQKBxt"
],
"license": "MIT"
},
"lib/forge-std/src/StdError.sol": {
"keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77",
"urls": [
"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6",
"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"
],
"license": "MIT"
},
"lib/forge-std/src/StdJson.sol": {
"keccak256": "0x2291ee8f379552b86f34d98acb248d50442c7d4ab94aed03f1c8ddb6aea6852d",
"urls": [
"bzz-raw://1ca6ca6fe35692428b507008b24e4ec4ba0cabaf58110fd0b4456a42e0166bdc",
"dweb:/ipfs/QmUcSeXfYMyusrWxEdPRMeWFYhf9qD6YJaZXCVo29F4eus"
],
"license": "MIT"
},
"lib/forge-std/src/StdMath.sol": {
"keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2",
"urls": [
"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92",
"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"
],
"license": "MIT"
},
"lib/forge-std/src/StdStorage.sol": {
"keccak256": "0xb0da85ce6999940eba6190a26c15b9bc7aede57123891287e1b30f80333a9cf5",
"urls": [
"bzz-raw://d287fd41de40ef992588f7a9531e66d1e9f8e4f3f194b9e721ac576d4613964a",
"dweb:/ipfs/QmbFYYjoc8WGLKVfDe4rscYPwdGq48incbwRQNoLtcMMjn"
],
"license": "MIT"
},
"lib/forge-std/src/StdUtils.sol": {
"keccak256": "0x216818221765c43713791708d7dc83fcd5ada81766c9d4ce54551528c191a59f",
"urls": [
"bzz-raw://3f03d0ef065ce600e5922f3e9c92f0f54ff7c12895a250fa97d83e9ee38e7e2b",
"dweb:/ipfs/QmX59m9mNRNEhjhEZnxbDirniesi26pnDaNzF5hPB4A3E8"
],
"license": "MIT"
},
"lib/forge-std/src/Test.sol": {
"keccak256": "0x6dc670615c9d04adf786ed4f18095b2142311c93dfda6459732da919d9113c17",
"urls": [
"bzz-raw://b4eb56f37ea1c9bb72d2064b5e8fd134dd871dd0a9a3e081995c0fa52dd82c74",
"dweb:/ipfs/QmbQZeD1RfPWjUSZ8iEdUYoLBn1PuSHvSYzZ7V9rLrRK4T"
],
"license": "MIT"
},
"lib/forge-std/src/Vm.sol": {
"keccak256": "0xf4442ded918d167635adc30ba3c451d45666c89b38e0eec2adaf0857b49a72f7",
"urls": [
"bzz-raw://b4cb181bd626fe852a36f9b1cf2d79ef0fa9d2bf2cbf0ec86f33f5bf492c0b69",
"dweb:/ipfs/QmaZKevWdZbjoTB7qtzKjP3dZhiUGymJc4Wb9qkNMewxjB"
],
"license": "MIT"
},
"lib/forge-std/src/console.sol": {
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
"urls": [
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
],
"license": "MIT"
},
"lib/forge-std/src/console2.sol": {
"keccak256": "0x225cc1ec33efd35c90e78aec0792ed9751cd6217e646271172421e96e2e2cc0f",
"urls": [
"bzz-raw://6c6adbd216e40ca2387835b8618c82e7153cb826023d38943bbb0c2e992644aa",
"dweb:/ipfs/QmZeejwEkm7iH9NHih7dPbuNqivuFn27EkgJesgByzS9wD"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "lib/forge-std/src/Test.sol",
"id": 8283,
"exportedSymbols": {
"CommonBase": [
2544
],
"DSTest": [
2512
],
"StdAssertions": [
3370
],
"StdCheats": [
5483
],
"StdStorage": [
6388
],
"StdUtils": [
8251
],
"Test": [
8282
],
"TestBase": [
8271
],
"Vm": [
9256
],
"console": [
17320
],
"console2": [
25385
],
"stdError": [
5549
],
"stdJson": [
6215
],
"stdMath": [
6357
],
"stdStorage": [
7822
]
},
"nodeType": "SourceUnit",
"src": "32:404:12",
"nodes": [
{
"id": 8253,
"nodeType": "PragmaDirective",
"src": "32:31:12",
"nodes": [],
"literals": [
"solidity",
">=",
"0.6",
".2",
"<",
"0.9",
".0"
]
},
{
"id": 8255,
"nodeType": "ImportDirective",
"src": "65:40:12",
"nodes": [],
"absolutePath": "lib/forge-std/src/Common.sol",
"file": "./Common.sol",
"nameLocation": "-1:-1:-1",
"scope": 8283,
"sourceUnit": 2545,
"symbolAliases": [
{
"foreign": {
"id": 8254,
"name": "CommonBase",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2544,
"src": "73:10:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8256,
"nodeType": "ImportDirective",
"src": "106:26:12",
"nodes": [],
"absolutePath": "lib/forge-std/lib/ds-test/src/test.sol",
"file": "ds-test/test.sol",
"nameLocation": "-1:-1:-1",
"scope": 8283,
"sourceUnit": 2513,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 8268,
"nodeType": "ImportDirective",
"src": "164:143:12",
"nodes": [],
"absolutePath": "lib/forge-std/src/Components.sol",
"file": "./Components.sol",
"nameLocation": "-1:-1:-1",
"scope": 8283,
"sourceUnit": 2557,
"symbolAliases": [
{
"foreign": {
"id": 8257,
"name": "console",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 17320,
"src": "172:7:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8258,
"name": "console2",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25385,
"src": "181:8:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8259,
"name": "StdAssertions",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3370,
"src": "191:13:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8260,
"name": "StdCheats",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5483,
"src": "206:9:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8261,
"name": "stdError",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5549,
"src": "217:8:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8262,
"name": "stdJson",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6215,
"src": "227:7:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8263,
"name": "stdMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6357,
"src": "236:7:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8264,
"name": "StdStorage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6388,
"src": "245:10:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8265,
"name": "stdStorage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7822,
"src": "257:10:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8266,
"name": "StdUtils",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8251,
"src": "269:8:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 8267,
"name": "Vm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9256,
"src": "279:2:12",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 8271,
"nodeType": "ContractDefinition",
"src": "309:43:12",
"nodes": [],
"abstract": true,
"baseContracts": [
{
"baseName": {
"id": 8269,
"name": "CommonBase",
"nameLocations": [
"339:10:12"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2544,
"src": "339:10:12"
},
"id": 8270,
"nodeType": "InheritanceSpecifier",
"src": "339:10:12"
}
],
"canonicalName": "TestBase",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
8271,
2544
],
"name": "TestBase",
"nameLocation": "327:8:12",
"scope": 8283,
"usedErrors": []
},
{
"id": 8282,
"nodeType": "ContractDefinition",
"src": "354:81:12",
"nodes": [],
"abstract": true,
"baseContracts": [
{
"baseName": {
"id": 8272,
"name": "TestBase",
"nameLocations": [
"380:8:12"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8271,
"src": "380:8:12"
},
"id": 8273,
"nodeType": "InheritanceSpecifier",
"src": "380:8:12"
},
{
"baseName": {
"id": 8274,
"name": "DSTest",
"nameLocations": [
"390:6:12"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 2512,
"src": "390:6:12"
},
"id": 8275,
"nodeType": "InheritanceSpecifier",
"src": "390:6:12"
},
{
"baseName": {
"id": 8276,
"name": "StdAssertions",
"nameLocations": [
"398:13:12"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 3370,
"src": "398:13:12"
},
"id": 8277,
"nodeType": "InheritanceSpecifier",
"src": "398:13:12"
},
{
"baseName": {
"id": 8278,
"name": "StdCheats",
"nameLocations": [
"413:9:12"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 5483,
"src": "413:9:12"
},
"id": 8279,
"nodeType": "InheritanceSpecifier",
"src": "413:9:12"
},
{
"baseName": {
"id": 8280,
"name": "StdUtils",
"nameLocations": [
"424:8:12"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 8251,
"src": "424:8:12"
},
"id": 8281,
"nodeType": "InheritanceSpecifier",
"src": "424:8:12"
}
],
"canonicalName": "Test",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
8282,
8251,
5483,
5094,
3370,
2512,
8271,
2544
],
"name": "Test",
"nameLocation": "372:4:12",
"scope": 8283,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 12
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -3,13 +3,13 @@ pragma solidity ^0.8.7;
import "forge-std/Test.sol";
import "../../contracts/FleekERC721.sol";
contract ContractBTest is Test {
contract FleekTest is Test {
FleekERC721 fleekContract;
address constant DEPLOYER = 0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496;
function setUp() public {
fleekContract = new FleekERC721('Test Contract', 'FLKAPS');
}
function testName() public {
assertEq(fleekContract.name(), 'Test Contract');
}
@ -18,9 +18,13 @@ contract ContractBTest is Test {
assertEq(fleekContract.symbol(), 'FLKAPS');
}
function test() public {
assertEq(fleekContract.symbol(), 'FLKAPS');
}
function testMint() public {
uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -35,7 +39,7 @@ contract ContractBTest is Test {
function testMintingMintedToken() public {
uint256 first_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -46,7 +50,7 @@ contract ContractBTest is Test {
);
uint256 second_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -62,7 +66,7 @@ contract ContractBTest is Test {
function testMintingMoreThanOneTokenForTheSameAddress() public {
uint256 first_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -75,7 +79,7 @@ contract ContractBTest is Test {
assertEq(first_mint, 0);
uint256 second_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App 2',
'This is a test application submitted by foundry tests [2].',
'https://fleek.xyz',
@ -90,7 +94,7 @@ contract ContractBTest is Test {
function testMintingTwoTokensForTwoAddresses() public {
uint256 first_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -103,7 +107,7 @@ contract ContractBTest is Test {
assertEq(first_mint, 0);
uint256 second_mint = fleekContract.mint(
address(0),
address(12),
'Foundry Test App 2',
'This is a test application submitted by foundry tests[2].',
'https://fleek.xyz',
@ -118,7 +122,7 @@ contract ContractBTest is Test {
function testTokenURI() public {
uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -136,7 +140,7 @@ contract ContractBTest is Test {
'{',
'"name":"Foundry Test App",',
'"description":"This is a test application submitted by foundry tests.",',
'"owner":"0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84",',
'"owner":"DEPLOYER",',
'"external_url":"https://fleek.xyz",',
'"image":"https://fleek.xyz",',
'"attributes": [',
@ -156,7 +160,7 @@ contract ContractBTest is Test {
'{',
'"name":"Foundry Test App",',
'"description":"This is a test application submitted by foundry tests.",',
'"owner":"0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84",',
'"owner":"DEPLOYER",',
'"external_url":"https://fleek.xyz",',
'"image":"https://fleek.xyz",',
'"attributes": [',
@ -173,7 +177,7 @@ contract ContractBTest is Test {
function testBurn() public {
uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -194,7 +198,7 @@ contract ContractBTest is Test {
function testSetTokenName() public {
uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -211,7 +215,7 @@ contract ContractBTest is Test {
function testSetTokenDescription() public {
uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -228,7 +232,7 @@ contract ContractBTest is Test {
function testSetTokenImage() public {
uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -245,7 +249,7 @@ contract ContractBTest is Test {
function testSetTokenExternalURL() public {
uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84,
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
@ -261,18 +265,72 @@ contract ContractBTest is Test {
}
function testSetTokenBuild() public {
}
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
'https://fleek.xyz',
'fleek_xyz',
'afff3f6',
'https://github.com/fleekxyz/contracts'
);
function testUpgradeTokenBuild() public {
assertEq(mint, 0);
fleekContract.setTokenBuild(mint, 'aaaaaaa', 'https://github.com/fleekxyz/test_contracts');
}
function testSetTokenENS() public {
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
'https://fleek.xyz',
'fleek_xyz',
'afff3f6',
'https://github.com/fleekxyz/contracts'
);
assertEq(mint, 0);
fleekContract.setTokenENS(mint, 'fleek_nfts');
}
function testAddTokenController() public {
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
'https://fleek.xyz',
'fleek_xyz',
'afff3f6',
'https://github.com/fleekxyz/contracts'
);
assertEq(mint, 0);
fleekContract.addTokenController(mint, 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84);
}
function testRemoveTokenController() public {
uint256 mint = fleekContract.mint(
DEPLOYER,
'Foundry Test App',
'This is a test application submitted by foundry tests.',
'https://fleek.xyz',
'https://fleek.xyz',
'fleek_xyz',
'afff3f6',
'https://github.com/fleekxyz/contracts'
);
assertEq(mint, 0);
fleekContract.addTokenController(mint, 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84);
fleekContract.removeTokenController(mint, 0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84);
}
}