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

4
.gitignore vendored
View File

@ -7,3 +7,7 @@ artifacts
# NPM # NPM
package-lock.json package-lock.json
# Foundry
./out
./forge-cache

View File

@ -84,15 +84,6 @@ contract FleekERC721 is ERC721, FleekAccessControl {
return tokenId; return tokenId;
} }
function upgradeTokenBuild(
uint256 tokenId,
string memory commit,
string memory repository
) public payable requireTokenOwner(tokenId) {
_requireMinted(tokenId);
setTokenBuild(tokenId, commit, repository);
}
function tokenURI( function tokenURI(
uint256 tokenId uint256 tokenId
) public view virtual override returns (string memory) { ) public view virtual override returns (string memory) {
@ -123,8 +114,7 @@ contract FleekERC721 is ERC721, FleekAccessControl {
uint256 tokenId, uint256 tokenId,
address controller address controller
) public requireTokenOwner(tokenId) { ) public requireTokenOwner(tokenId) {
_requireMinted(tokenId); _addTokenController(tokenId, controller);
_grantRole(_tokenRole(tokenId, "CONTROLLER"), controller);
} }
function _addTokenController( function _addTokenController(
@ -211,6 +201,7 @@ contract FleekERC721 is ERC721, FleekAccessControl {
function burn( function burn(
uint256 tokenId uint256 tokenId
) public virtual requireTokenController(tokenId) { ) public virtual requireTokenController(tokenId) {
_requireMinted(tokenId);
require( require(
ownerOf(tokenId) == msg.sender, ownerOf(tokenId) == msg.sender,
"FleekERC721: must be token owner" "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,9 +3,9 @@ pragma solidity ^0.8.7;
import "forge-std/Test.sol"; import "forge-std/Test.sol";
import "../../contracts/FleekERC721.sol"; import "../../contracts/FleekERC721.sol";
contract ContractBTest is Test { contract FleekTest is Test {
FleekERC721 fleekContract; FleekERC721 fleekContract;
address constant DEPLOYER = 0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496;
function setUp() public { function setUp() public {
fleekContract = new FleekERC721('Test Contract', 'FLKAPS'); fleekContract = new FleekERC721('Test Contract', 'FLKAPS');
} }
@ -18,9 +18,13 @@ contract ContractBTest is Test {
assertEq(fleekContract.symbol(), 'FLKAPS'); assertEq(fleekContract.symbol(), 'FLKAPS');
} }
function test() public {
assertEq(fleekContract.symbol(), 'FLKAPS');
}
function testMint() public { function testMint() public {
uint256 mint = fleekContract.mint( uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -35,7 +39,7 @@ contract ContractBTest is Test {
function testMintingMintedToken() public { function testMintingMintedToken() public {
uint256 first_mint = fleekContract.mint( uint256 first_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -46,7 +50,7 @@ contract ContractBTest is Test {
); );
uint256 second_mint = fleekContract.mint( uint256 second_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -62,7 +66,7 @@ contract ContractBTest is Test {
function testMintingMoreThanOneTokenForTheSameAddress() public { function testMintingMoreThanOneTokenForTheSameAddress() public {
uint256 first_mint = fleekContract.mint( uint256 first_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -75,7 +79,7 @@ contract ContractBTest is Test {
assertEq(first_mint, 0); assertEq(first_mint, 0);
uint256 second_mint = fleekContract.mint( uint256 second_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App 2', 'Foundry Test App 2',
'This is a test application submitted by foundry tests [2].', 'This is a test application submitted by foundry tests [2].',
'https://fleek.xyz', 'https://fleek.xyz',
@ -90,7 +94,7 @@ contract ContractBTest is Test {
function testMintingTwoTokensForTwoAddresses() public { function testMintingTwoTokensForTwoAddresses() public {
uint256 first_mint = fleekContract.mint( uint256 first_mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -103,7 +107,7 @@ contract ContractBTest is Test {
assertEq(first_mint, 0); assertEq(first_mint, 0);
uint256 second_mint = fleekContract.mint( uint256 second_mint = fleekContract.mint(
address(0), address(12),
'Foundry Test App 2', 'Foundry Test App 2',
'This is a test application submitted by foundry tests[2].', 'This is a test application submitted by foundry tests[2].',
'https://fleek.xyz', 'https://fleek.xyz',
@ -118,7 +122,7 @@ contract ContractBTest is Test {
function testTokenURI() public { function testTokenURI() public {
uint256 mint = fleekContract.mint( uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -136,7 +140,7 @@ contract ContractBTest is Test {
'{', '{',
'"name":"Foundry Test App",', '"name":"Foundry Test App",',
'"description":"This is a test application submitted by foundry tests.",', '"description":"This is a test application submitted by foundry tests.",',
'"owner":"0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84",', '"owner":"DEPLOYER",',
'"external_url":"https://fleek.xyz",', '"external_url":"https://fleek.xyz",',
'"image":"https://fleek.xyz",', '"image":"https://fleek.xyz",',
'"attributes": [', '"attributes": [',
@ -156,7 +160,7 @@ contract ContractBTest is Test {
'{', '{',
'"name":"Foundry Test App",', '"name":"Foundry Test App",',
'"description":"This is a test application submitted by foundry tests.",', '"description":"This is a test application submitted by foundry tests.",',
'"owner":"0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84",', '"owner":"DEPLOYER",',
'"external_url":"https://fleek.xyz",', '"external_url":"https://fleek.xyz",',
'"image":"https://fleek.xyz",', '"image":"https://fleek.xyz",',
'"attributes": [', '"attributes": [',
@ -173,7 +177,7 @@ contract ContractBTest is Test {
function testBurn() public { function testBurn() public {
uint256 mint = fleekContract.mint( uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -194,7 +198,7 @@ contract ContractBTest is Test {
function testSetTokenName() public { function testSetTokenName() public {
uint256 mint = fleekContract.mint( uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -211,7 +215,7 @@ contract ContractBTest is Test {
function testSetTokenDescription() public { function testSetTokenDescription() public {
uint256 mint = fleekContract.mint( uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -228,7 +232,7 @@ contract ContractBTest is Test {
function testSetTokenImage() public { function testSetTokenImage() public {
uint256 mint = fleekContract.mint( uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -245,7 +249,7 @@ contract ContractBTest is Test {
function testSetTokenExternalURL() public { function testSetTokenExternalURL() public {
uint256 mint = fleekContract.mint( uint256 mint = fleekContract.mint(
0xb4c79daB8f259C7Aee6E5b2Aa729821864227e84, DEPLOYER,
'Foundry Test App', 'Foundry Test App',
'This is a test application submitted by foundry tests.', 'This is a test application submitted by foundry tests.',
'https://fleek.xyz', 'https://fleek.xyz',
@ -261,18 +265,72 @@ contract ContractBTest is Test {
} }
function testSetTokenBuild() public { 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 { 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 { 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 { 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);
} }
} }