diff --git a/.changeset/clever-feet-trade.md b/.changeset/clever-feet-trade.md new file mode 100644 index 00000000000..57872d593ff --- /dev/null +++ b/.changeset/clever-feet-trade.md @@ -0,0 +1,5 @@ +--- +"@nomicfoundation/ignition-core": patch +--- + +Fix an issue that prevented the verification of contracts using FQNs [#8014](https://github.com/NomicFoundation/hardhat/pull/8014) diff --git a/v-next/ignition-core/src/verify.ts b/v-next/ignition-core/src/verify.ts index 4aa339b0183..4cda6ecf8fa 100644 --- a/v-next/ignition-core/src/verify.ts +++ b/v-next/ignition-core/src/verify.ts @@ -100,7 +100,9 @@ async function convertExStateToVerifyInfo( constructorArgs, libraries, address: exState.result.address, - contract: `${artifact.sourceName}:${contractName}`, + contract: contractName.includes(":") + ? contractName + : `${artifact.sourceName}:${contractName}`, }; return verifyInfo; diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/README.md b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/README.md new file mode 100644 index 00000000000..cedfb9b3857 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/README.md @@ -0,0 +1 @@ +This mock deployment a library deployed with a FQN as contract name. diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#UUUUU.dbg.json b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#UUUUU.dbg.json new file mode 100644 index 00000000000..acf2feda465 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#UUUUU.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/254cc89254e61cb6a9bf2c74f13055f1.json" +} \ No newline at end of file diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#UUUUU.json b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#UUUUU.json new file mode 100644 index 00000000000..5ef725ccaa3 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#UUUUU.json @@ -0,0 +1,37 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "UUUUU", + "sourceName": "contracts/Lib.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bf", + "type": "uint256" + } + ], + "name": "yu", + "type": "event" + }, + { + "inputs": [], + "name": "cn", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x61023a610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063856c67f414610045578063a3a79ad71461006e575b600080fd5b81801561005157600080fd5b5061006c60048036038101906100679190610120565b61008c565b005b6100766100d8565b604051610083919061015c565b60405180910390f35b7fbbd59f58682e05b023d29551eca4f8ef7fb7413f5dc80469ddef4d332586fd256100b56100d8565b826100c091906101a6565b6040516100cd91906101e9565b60405180910390a150565b6000641cbe86ba4d905090565b600080fd5b6000819050919050565b6100fd816100ea565b811461010857600080fd5b50565b60008135905061011a816100f4565b92915050565b600060208284031215610136576101356100e5565b5b60006101448482850161010b565b91505092915050565b610156816100ea565b82525050565b6000602082019050610171600083018461014d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101b1826100ea565b91506101bc836100ea565b92508282019050808211156101d4576101d3610177565b5b92915050565b6101e3816100ea565b82525050565b60006020820190506101fe60008301846101da565b9291505056fea2646970667358221220c15d1d30c7e4fcaa2bcd8092153ba13d28b770b6e90531af7317221cc4a474dd64736f6c63430008130033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063856c67f414610045578063a3a79ad71461006e575b600080fd5b81801561005157600080fd5b5061006c60048036038101906100679190610120565b61008c565b005b6100766100d8565b604051610083919061015c565b60405180910390f35b7fbbd59f58682e05b023d29551eca4f8ef7fb7413f5dc80469ddef4d332586fd256100b56100d8565b826100c091906101a6565b6040516100cd91906101e9565b60405180910390a150565b6000641cbe86ba4d905090565b600080fd5b6000819050919050565b6100fd816100ea565b811461010857600080fd5b50565b60008135905061011a816100f4565b92915050565b600060208284031215610136576101356100e5565b5b60006101448482850161010b565b91505092915050565b610156816100ea565b82525050565b6000602082019050610171600083018461014d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101b1826100ea565b91506101bc836100ea565b92508282019050808211156101d4576101d3610177565b5b92915050565b6101e3816100ea565b82525050565b60006020820190506101fe60008301846101da565b9291505056fea2646970667358221220c15d1d30c7e4fcaa2bcd8092153ba13d28b770b6e90531af7317221cc4a474dd64736f6c63430008130033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#WAAIT.dbg.json b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#WAAIT.dbg.json new file mode 100644 index 00000000000..acf2feda465 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#WAAIT.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/254cc89254e61cb6a9bf2c74f13055f1.json" +} \ No newline at end of file diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#WAAIT.json b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#WAAIT.json new file mode 100644 index 00000000000..a28710391b0 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/artifacts/LockModule#WAAIT.json @@ -0,0 +1,29 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "WAAIT", + "sourceName": "contracts/Lock.sol", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5073__$e1bfcf6041ff8ba6df21245bab8ae07a55$__63856c67f473__$e1bfcf6041ff8ba6df21245bab8ae07a55$__63a3a79ad76040518163ffffffff1660e01b8152600401602060405180830381865af4158015610074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100989190610124565b6040518263ffffffff1660e01b81526004016100b49190610160565b60006040518083038186803b1580156100cc57600080fd5b505af41580156100e0573d6000803e3d6000fd5b5050505061017b565b600080fd5b6000819050919050565b610101816100ee565b811461010c57600080fd5b50565b60008151905061011e816100f8565b92915050565b60006020828403121561013a576101396100e9565b5b60006101488482850161010f565b91505092915050565b61015a816100ee565b82525050565b60006020820190506101756000830184610151565b92915050565b603f806101896000396000f3fe6080604052600080fdfea2646970667358221220cb2ee4f824d599c1f160d9867571f972f7aaf7ab2f13b22e78324469179161ce64736f6c63430008130033", + "deployedBytecode": "0x6080604052600080fdfea2646970667358221220cb2ee4f824d599c1f160d9867571f972f7aaf7ab2f13b22e78324469179161ce64736f6c63430008130033", + "linkReferences": { + "contracts/Lib.sol": { + "UUUUU": [ + { + "length": 20, + "start": 19 + }, + { + "length": 20, + "start": 45 + } + ] + } + }, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/build-info/254cc89254e61cb6a9bf2c74f13055f1.json b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/build-info/254cc89254e61cb6a9bf2c74f13055f1.json new file mode 100644 index 00000000000..f4881fb1c89 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/build-info/254cc89254e61cb6a9bf2c74f13055f1.json @@ -0,0 +1,2681 @@ +{ + "id": "254cc89254e61cb6a9bf2c74f13055f1", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.19", + "solcLongVersion": "0.8.19+commit.7dd6d404", + "input": { + "language": "Solidity", + "sources": { + "contracts/Lib.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.9;\n\nlibrary UUUUU {\n function bn(uint ba) public {\n emit yu(ba + cn());\n }\n\n function cn() public pure returns (uint256) {\n return 123455584845;\n }\n\n event yu(uint bf);\n}\n" + }, + "contracts/Lock.sol": { + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.9;\n\n// Uncomment this line to use console.log\n// import \"hardhat/console.sol\";\n\nimport \"./Lib.sol\";\n\ncontract WAAIT {\n constructor() {\n UUUUU.bn(UUUUU.cn());\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "contracts/Lib.sol": { + "ast": { + "absolutePath": "contracts/Lib.sol", + "exportedSymbols": { + "UUUUU": [ + 27 + ] + }, + "id": 28, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "39:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "UUUUU", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 27, + "linearizedBaseContracts": [ + 27 + ], + "name": "UUUUU", + "nameLocation": "72:5:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 13, + "nodeType": "Block", + "src": "110:29:0", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7, + "name": "ba", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "124:2:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8, + "name": "cn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "129:2:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "129:4:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "124:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6, + "name": "yu", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "121:2:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "121:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12, + "nodeType": "EmitStatement", + "src": "116:18:0" + } + ] + }, + "functionSelector": "856c67f4", + "id": 14, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bn", + "nameLocation": "91:2:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3, + "mutability": "mutable", + "name": "ba", + "nameLocation": "99:2:0", + "nodeType": "VariableDeclaration", + "scope": 14, + "src": "94:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "94:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "93:9:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "110:0:0" + }, + "scope": 27, + "src": "82:57:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 21, + "nodeType": "Block", + "src": "187:30:0", + "statements": [ + { + "expression": { + "hexValue": "313233343535353834383435", + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "200:12:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_123455584845_by_1", + "typeString": "int_const 123455584845" + }, + "value": "123455584845" + }, + "functionReturnParameters": 18, + "id": 20, + "nodeType": "Return", + "src": "193:19:0" + } + ] + }, + "functionSelector": "a3a79ad7", + "id": 22, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "cn", + "nameLocation": "152:2:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15, + "nodeType": "ParameterList", + "parameters": [], + "src": "154:2:0" + }, + "returnParameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "178:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "178:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "177:9:0" + }, + "scope": 27, + "src": "143:74:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "bbd59f58682e05b023d29551eca4f8ef7fb7413f5dc80469ddef4d332586fd25", + "id": 26, + "name": "yu", + "nameLocation": "227:2:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 24, + "indexed": false, + "mutability": "mutable", + "name": "bf", + "nameLocation": "235:2:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "230:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "230:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "229:9:0" + }, + "src": "221:18:0" + } + ], + "scope": 28, + "src": "64:177:0", + "usedErrors": [] + } + ], + "src": "39:203:0" + }, + "id": 0 + }, + "contracts/Lock.sol": { + "ast": { + "absolutePath": "contracts/Lock.sol", + "exportedSymbols": { + "UUUUU": [ + 27 + ], + "WAAIT": [ + 43 + ] + }, + "id": 44, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 29, + "literals": [ + "solidity", + "^", + "0.8", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "39:23:1" + }, + { + "absolutePath": "contracts/Lib.sol", + "file": "./Lib.sol", + "id": 30, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 44, + "sourceUnit": 28, + "src": "140:19:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "WAAIT", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 43, + "linearizedBaseContracts": [ + 43 + ], + "name": "WAAIT", + "nameLocation": "170:5:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 41, + "nodeType": "Block", + "src": "194:31:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 36, + "name": "UUUUU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "209:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UUUUU_$27_$", + "typeString": "type(library UUUUU)" + } + }, + "id": 37, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "215:2:1", + "memberName": "cn", + "nodeType": "MemberAccess", + "referencedDeclaration": 22, + "src": "209:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "209:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 33, + "name": "UUUUU", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "200:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UUUUU_$27_$", + "typeString": "type(library UUUUU)" + } + }, + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "206:2:1", + "memberName": "bn", + "nodeType": "MemberAccess", + "referencedDeclaration": 14, + "src": "200:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 39, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "200:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 40, + "nodeType": "ExpressionStatement", + "src": "200:20:1" + } + ] + }, + "id": 42, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 31, + "nodeType": "ParameterList", + "parameters": [], + "src": "191:2:1" + }, + "returnParameters": { + "id": 32, + "nodeType": "ParameterList", + "parameters": [], + "src": "194:0:1" + }, + "scope": 43, + "src": "180:45:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 44, + "src": "161:66:1", + "usedErrors": [] + } + ], + "src": "39:189:1" + }, + "id": 1 + } + }, + "contracts": { + "contracts/Lib.sol": { + "UUUUU": { + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "bf", + "type": "uint256" + } + ], + "name": "yu", + "type": "event" + }, + { + "inputs": [], + "name": "cn", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "61023a610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063856c67f414610045578063a3a79ad71461006e575b600080fd5b81801561005157600080fd5b5061006c60048036038101906100679190610120565b61008c565b005b6100766100d8565b604051610083919061015c565b60405180910390f35b7fbbd59f58682e05b023d29551eca4f8ef7fb7413f5dc80469ddef4d332586fd256100b56100d8565b826100c091906101a6565b6040516100cd91906101e9565b60405180910390a150565b6000641cbe86ba4d905090565b600080fd5b6000819050919050565b6100fd816100ea565b811461010857600080fd5b50565b60008135905061011a816100f4565b92915050565b600060208284031215610136576101356100e5565b5b60006101448482850161010b565b91505092915050565b610156816100ea565b82525050565b6000602082019050610171600083018461014d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101b1826100ea565b91506101bc836100ea565b92508282019050808211156101d4576101d3610177565b5b92915050565b6101e3816100ea565b82525050565b60006020820190506101fe60008301846101da565b9291505056fea2646970667358221220c15d1d30c7e4fcaa2bcd8092153ba13d28b770b6e90531af7317221cc4a474dd64736f6c63430008130033", + "opcodes": "PUSH2 0x23A PUSH2 0x53 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x46 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x40 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x856C67F4 EQ PUSH2 0x45 JUMPI DUP1 PUSH4 0xA3A79AD7 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x67 SWAP2 SWAP1 PUSH2 0x120 JUMP JUMPDEST PUSH2 0x8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x15C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0xBBD59F58682E05B023D29551ECA4F8EF7FB7413F5DC80469DDEF4D332586FD25 PUSH2 0xB5 PUSH2 0xD8 JUMP JUMPDEST DUP3 PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x1A6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x1E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH5 0x1CBE86BA4D SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD DUP2 PUSH2 0xEA JUMP JUMPDEST DUP2 EQ PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11A DUP2 PUSH2 0xF4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x136 JUMPI PUSH2 0x135 PUSH2 0xE5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x144 DUP5 DUP3 DUP6 ADD PUSH2 0x10B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x156 DUP2 PUSH2 0xEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x171 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B1 DUP3 PUSH2 0xEA JUMP JUMPDEST SWAP2 POP PUSH2 0x1BC DUP4 PUSH2 0xEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1D4 JUMPI PUSH2 0x1D3 PUSH2 0x177 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E3 DUP2 PUSH2 0xEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC1 0x5D SAR ADDRESS 0xC7 0xE4 0xFC 0xAA 0x2B 0xCD DUP1 SWAP3 ISZERO EXTCODESIZE LOG1 RETURNDATASIZE 0x28 0xB7 PUSH17 0xB6E90531AF7317221CC4A474DD64736F6C PUSH4 0x43000813 STOP CALLER ", + "sourceMap": "64:177:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@bn_14": { + "entryPoint": 140, + "id": 14, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@cn_22": { + "entryPoint": 216, + "id": 22, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 267, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 288, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 474, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack_library": { + "entryPoint": 333, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": 348, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 489, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 422, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 234, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 375, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 229, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 244, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:2133:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:2", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:2" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:2" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:2" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:2", + "type": "" + } + ], + "src": "7:75:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:2" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:2" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:32:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:2", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:2", + "type": "" + } + ], + "src": "334:77:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "460:79:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "517:16:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "526:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "529:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "519:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "519:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "519:12:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "483:5:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "508:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "490:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "490:24:2" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "480:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "480:35:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "473:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "473:43:2" + }, + "nodeType": "YulIf", + "src": "470:63:2" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "453:5:2", + "type": "" + } + ], + "src": "417:122:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "597:87:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "607:29:2", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "629:6:2" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "616:12:2" + }, + "nodeType": "YulFunctionCall", + "src": "616:20:2" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "607:5:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "672:5:2" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "645:26:2" + }, + "nodeType": "YulFunctionCall", + "src": "645:33:2" + }, + "nodeType": "YulExpressionStatement", + "src": "645:33:2" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "575:6:2", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "583:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "591:5:2", + "type": "" + } + ], + "src": "545:139:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "756:263:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "802:83:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "804:77:2" + }, + "nodeType": "YulFunctionCall", + "src": "804:79:2" + }, + "nodeType": "YulExpressionStatement", + "src": "804:79:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "777:7:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "786:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "773:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "773:23:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "798:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "769:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "769:32:2" + }, + "nodeType": "YulIf", + "src": "766:119:2" + }, + { + "nodeType": "YulBlock", + "src": "895:117:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "910:15:2", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "924:1:2", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "914:6:2", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "939:63:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "974:9:2" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "985:6:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "970:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "970:22:2" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "994:7:2" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "949:20:2" + }, + "nodeType": "YulFunctionCall", + "src": "949:53:2" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "939:6:2" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "726:9:2", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "737:7:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "749:6:2", + "type": "" + } + ], + "src": "690:329:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1098:53:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1115:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1138:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1120:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "1120:24:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1108:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1108:37:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1108:37:2" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack_library", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1086:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1093:3:2", + "type": "" + } + ], + "src": "1025:126:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1263:132:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1273:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1285:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1296:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1281:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1281:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1273:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1361:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1374:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1385:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1370:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1370:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack_library", + "nodeType": "YulIdentifier", + "src": "1309:51:2" + }, + "nodeType": "YulFunctionCall", + "src": "1309:79:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1309:79:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1235:9:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1247:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1258:4:2", + "type": "" + } + ], + "src": "1157:238:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1429:152:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1446:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1449:77:2", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1439:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1439:88:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1439:88:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1543:1:2", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1546:4:2", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1536:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1536:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1536:15:2" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1567:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1570:4:2", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1560:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1560:15:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1560:15:2" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "1401:180:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1631:147:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1641:25:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1664:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1646:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "1646:20:2" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1641:1:2" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1675:25:2", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1698:1:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1680:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "1680:20:2" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1675:1:2" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1709:16:2", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1720:1:2" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "1723:1:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1716:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1716:9:2" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1709:3:2" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1749:22:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1751:16:2" + }, + "nodeType": "YulFunctionCall", + "src": "1751:18:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1751:18:2" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "1741:1:2" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "1744:3:2" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1738:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "1738:10:2" + }, + "nodeType": "YulIf", + "src": "1735:36:2" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "1618:1:2", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "1621:1:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "1627:3:2", + "type": "" + } + ], + "src": "1587:191:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1849:53:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1866:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1889:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1871:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "1871:24:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1859:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1859:37:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1859:37:2" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1837:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1844:3:2", + "type": "" + } + ], + "src": "1784:118:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2006:124:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2016:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2028:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2039:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2024:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2024:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2016:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2096:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2109:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2120:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2105:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "2105:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2052:43:2" + }, + "nodeType": "YulFunctionCall", + "src": "2052:71:2" + }, + "nodeType": "YulExpressionStatement", + "src": "2052:71:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1978:9:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1990:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2001:4:2", + "type": "" + } + ], + "src": "1908:222:2" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack_library(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack_library(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 2, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063856c67f414610045578063a3a79ad71461006e575b600080fd5b81801561005157600080fd5b5061006c60048036038101906100679190610120565b61008c565b005b6100766100d8565b604051610083919061015c565b60405180910390f35b7fbbd59f58682e05b023d29551eca4f8ef7fb7413f5dc80469ddef4d332586fd256100b56100d8565b826100c091906101a6565b6040516100cd91906101e9565b60405180910390a150565b6000641cbe86ba4d905090565b600080fd5b6000819050919050565b6100fd816100ea565b811461010857600080fd5b50565b60008135905061011a816100f4565b92915050565b600060208284031215610136576101356100e5565b5b60006101448482850161010b565b91505092915050565b610156816100ea565b82525050565b6000602082019050610171600083018461014d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101b1826100ea565b91506101bc836100ea565b92508282019050808211156101d4576101d3610177565b5b92915050565b6101e3816100ea565b82525050565b60006020820190506101fe60008301846101da565b9291505056fea2646970667358221220c15d1d30c7e4fcaa2bcd8092153ba13d28b770b6e90531af7317221cc4a474dd64736f6c63430008130033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x40 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x856C67F4 EQ PUSH2 0x45 JUMPI DUP1 PUSH4 0xA3A79AD7 EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x67 SWAP2 SWAP1 PUSH2 0x120 JUMP JUMPDEST PUSH2 0x8C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x15C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0xBBD59F58682E05B023D29551ECA4F8EF7FB7413F5DC80469DDEF4D332586FD25 PUSH2 0xB5 PUSH2 0xD8 JUMP JUMPDEST DUP3 PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x1A6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCD SWAP2 SWAP1 PUSH2 0x1E9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH5 0x1CBE86BA4D SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xFD DUP2 PUSH2 0xEA JUMP JUMPDEST DUP2 EQ PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x11A DUP2 PUSH2 0xF4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x136 JUMPI PUSH2 0x135 PUSH2 0xE5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x144 DUP5 DUP3 DUP6 ADD PUSH2 0x10B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x156 DUP2 PUSH2 0xEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x171 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x14D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1B1 DUP3 PUSH2 0xEA JUMP JUMPDEST SWAP2 POP PUSH2 0x1BC DUP4 PUSH2 0xEA JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1D4 JUMPI PUSH2 0x1D3 PUSH2 0x177 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1E3 DUP2 PUSH2 0xEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC1 0x5D SAR ADDRESS 0xC7 0xE4 0xFC 0xAA 0x2B 0xCD DUP1 SWAP3 ISZERO EXTCODESIZE LOG1 RETURNDATASIZE 0x28 0xB7 PUSH17 0xB6E90531AF7317221CC4A474DD64736F6C PUSH4 0x43000813 STOP CALLER ", + "sourceMap": "64:177:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;82:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;143:74;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;82:57;121:13;129:4;:2;:4::i;:::-;124:2;:9;;;;:::i;:::-;121:13;;;;;;:::i;:::-;;;;;;;;82:57;:::o;143:74::-;178:7;200:12;193:19;;143:74;:::o;88:117:2:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1120:24;1138:5;1120:24;:::i;:::-;1115:3;1108:37;1025:126;;:::o;1157:238::-;1258:4;1296:2;1285:9;1281:18;1273:26;;1309:79;1385:1;1374:9;1370:17;1361:6;1309:79;:::i;:::-;1157:238;;;;:::o;1401:180::-;1449:77;1446:1;1439:88;1546:4;1543:1;1536:15;1570:4;1567:1;1560:15;1587:191;1627:3;1646:20;1664:1;1646:20;:::i;:::-;1641:25;;1680:20;1698:1;1680:20;:::i;:::-;1675:25;;1723:1;1720;1716:9;1709:16;;1744:3;1741:1;1738:10;1735:36;;;1751:18;;:::i;:::-;1735:36;1587:191;;;;:::o;1784:118::-;1871:24;1889:5;1871:24;:::i;:::-;1866:3;1859:37;1784:118;;:::o;1908:222::-;2001:4;2039:2;2028:9;2024:18;2016:26;;2052:71;2120:1;2109:9;2105:17;2096:6;2052:71;:::i;:::-;1908:222;;;;:::o" + }, + "methodIdentifiers": { + "bn(uint256)": "856c67f4", + "cn()": "a3a79ad7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bf\",\"type\":\"uint256\"}],\"name\":\"yu\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Lib.sol\":\"UUUUU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Lib.sol\":{\"keccak256\":\"0xa603982d3548357d3f670ef1e530ec4c88b2366e7c63083d7300aa1acb41c69e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8501dd49427e34bbe12af6be9b9d8a27e68be1c2738ed8fe5ef426a1280626d3\",\"dweb:/ipfs/QmfTfRDYPhnZqRHECEiBEhddcgL9TdJGUjAs4jYMiPLYQx\"]}},\"version\":1}" + } + }, + "contracts/Lock.sol": { + "WAAIT": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_42": { + "entryPoint": null, + "id": 42, + "parameterSlots": 0, + "returnSlots": 0 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 271, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 292, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack_library": { + "entryPoint": 337, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": 352, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 238, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 233, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 248, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:1424:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:2", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:2", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:2" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:2" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:2" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:2", + "type": "" + } + ], + "src": "7:75:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:2" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:2" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:32:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:2", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:2" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:2" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:2", + "type": "" + } + ], + "src": "334:77:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "460:79:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "517:16:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "526:1:2", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "529:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "519:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "519:12:2" + }, + "nodeType": "YulExpressionStatement", + "src": "519:12:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "483:5:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "508:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "490:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "490:24:2" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "480:2:2" + }, + "nodeType": "YulFunctionCall", + "src": "480:35:2" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "473:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "473:43:2" + }, + "nodeType": "YulIf", + "src": "470:63:2" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "453:5:2", + "type": "" + } + ], + "src": "417:122:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "608:80:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "618:22:2", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "633:6:2" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "627:5:2" + }, + "nodeType": "YulFunctionCall", + "src": "627:13:2" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "618:5:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "676:5:2" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "649:26:2" + }, + "nodeType": "YulFunctionCall", + "src": "649:33:2" + }, + "nodeType": "YulExpressionStatement", + "src": "649:33:2" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "586:6:2", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "594:3:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "602:5:2", + "type": "" + } + ], + "src": "545:143:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "771:274:2", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "817:83:2", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "819:77:2" + }, + "nodeType": "YulFunctionCall", + "src": "819:79:2" + }, + "nodeType": "YulExpressionStatement", + "src": "819:79:2" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "792:7:2" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "801:9:2" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "788:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "788:23:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "813:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "784:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "784:32:2" + }, + "nodeType": "YulIf", + "src": "781:119:2" + }, + { + "nodeType": "YulBlock", + "src": "910:128:2", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "925:15:2", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "939:1:2", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "929:6:2", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "954:74:2", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1000:9:2" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1011:6:2" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "996:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "996:22:2" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1020:7:2" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "964:31:2" + }, + "nodeType": "YulFunctionCall", + "src": "964:64:2" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "954:6:2" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "741:9:2", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "752:7:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "764:6:2", + "type": "" + } + ], + "src": "694:351:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1124:53:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1141:3:2" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1164:5:2" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1146:17:2" + }, + "nodeType": "YulFunctionCall", + "src": "1146:24:2" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1134:6:2" + }, + "nodeType": "YulFunctionCall", + "src": "1134:37:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1134:37:2" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack_library", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1112:5:2", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1119:3:2", + "type": "" + } + ], + "src": "1051:126:2" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1289:132:2", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1299:26:2", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1311:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1322:2:2", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1307:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1307:18:2" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "1299:4:2" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1387:6:2" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1400:9:2" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1411:1:2", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1396:3:2" + }, + "nodeType": "YulFunctionCall", + "src": "1396:17:2" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack_library", + "nodeType": "YulIdentifier", + "src": "1335:51:2" + }, + "nodeType": "YulFunctionCall", + "src": "1335:79:2" + }, + "nodeType": "YulExpressionStatement", + "src": "1335:79:2" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1261:9:2", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1273:6:2", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "1284:4:2", + "type": "" + } + ], + "src": "1183:238:2" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack_library(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack_library(value0, add(headStart, 0))\n\n }\n\n}\n", + "id": 2, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": { + "contracts/Lib.sol": { + "UUUUU": [ + { + "length": 20, + "start": 19 + }, + { + "length": 20, + "start": 45 + } + ] + } + }, + "object": "608060405234801561001057600080fd5b5073__$e1bfcf6041ff8ba6df21245bab8ae07a55$__63856c67f473__$e1bfcf6041ff8ba6df21245bab8ae07a55$__63a3a79ad76040518163ffffffff1660e01b8152600401602060405180830381865af4158015610074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100989190610124565b6040518263ffffffff1660e01b81526004016100b49190610160565b60006040518083038186803b1580156100cc57600080fd5b505af41580156100e0573d6000803e3d6000fd5b5050505061017b565b600080fd5b6000819050919050565b610101816100ee565b811461010c57600080fd5b50565b60008151905061011e816100f8565b92915050565b60006020828403121561013a576101396100e9565b5b60006101488482850161010f565b91505092915050565b61015a816100ee565b82525050565b60006020820190506101756000830184610151565b92915050565b603f806101896000396000f3fe6080604052600080fdfea2646970667358221220cb2ee4f824d599c1f160d9867571f972f7aaf7ab2f13b22e78324469179161ce64736f6c63430008130033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH20 0x0 PUSH4 0x856C67F4 PUSH20 0x0 PUSH4 0xA3A79AD7 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x124 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB4 SWAP2 SWAP1 PUSH2 0x160 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xE0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x17B JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x101 DUP2 PUSH2 0xEE JUMP JUMPDEST DUP2 EQ PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x11E DUP2 PUSH2 0xF8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x13A JUMPI PUSH2 0x139 PUSH2 0xE9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x148 DUP5 DUP3 DUP6 ADD PUSH2 0x10F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15A DUP2 PUSH2 0xEE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x175 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x151 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x3F DUP1 PUSH2 0x189 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCB 0x2E 0xE4 0xF8 0x24 0xD5 SWAP10 0xC1 CALL PUSH1 0xD9 DUP7 PUSH22 0x71F972F7AAF7AB2F13B22E78324469179161CE64736F PUSH13 0x63430008130033000000000000 ", + "sourceMap": "161:66:1:-:0;;;180:45;;;;;;;;;;200:5;:8;209:5;:8;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;200:20;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;161:66;;88:117:2;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:126::-;1146:24;1164:5;1146:24;:::i;:::-;1141:3;1134:37;1051:126;;:::o;1183:238::-;1284:4;1322:2;1311:9;1307:18;1299:26;;1335:79;1411:1;1400:9;1396:17;1387:6;1335:79;:::i;:::-;1183:238;;;;:::o;161:66:1:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600080fdfea2646970667358221220cb2ee4f824d599c1f160d9867571f972f7aaf7ab2f13b22e78324469179161ce64736f6c63430008130033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCB 0x2E 0xE4 0xF8 0x24 0xD5 SWAP10 0xC1 CALL PUSH1 0xD9 DUP7 PUSH22 0x71F972F7AAF7AB2F13B22E78324469179161CE64736F PUSH13 0x63430008130033000000000000 ", + "sourceMap": "161:66:1:-:0;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Lock.sol\":\"WAAIT\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Lib.sol\":{\"keccak256\":\"0xa603982d3548357d3f670ef1e530ec4c88b2366e7c63083d7300aa1acb41c69e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8501dd49427e34bbe12af6be9b9d8a27e68be1c2738ed8fe5ef426a1280626d3\",\"dweb:/ipfs/QmfTfRDYPhnZqRHECEiBEhddcgL9TdJGUjAs4jYMiPLYQx\"]},\"contracts/Lock.sol\":{\"keccak256\":\"0xd5a5a86500a2d95801a5f0a0d20ff3d97fc4c99d6775cb10f4960f7979bc41c4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fe81231f68068bf4ef391ac34c7642467046c9b05d99f231eb41db10c760fc9e\",\"dweb:/ipfs/QmSv2WJtuzFT6EsNiukMCi2sWTVPJ4orMVKJF22zEL6x1p\"]}},\"version\":1}" + } + } + } + } +} \ No newline at end of file diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/deployed_addresses.json b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/deployed_addresses.json new file mode 100644 index 00000000000..392de448769 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/deployed_addresses.json @@ -0,0 +1,4 @@ +{ + "LockModule#UUUUU": "0x0B014cb3B1AF9F45123195B37538Fb9dB6F5eF5F", + "LockModule#WAAIT": "0xb55CE3EEF69AE60CadcF500b3c696351E92216f4" +} diff --git a/v-next/ignition-core/test/mocks/verify/fqn-contract-name/journal.jsonl b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/journal.jsonl new file mode 100644 index 00000000000..eae64eca012 --- /dev/null +++ b/v-next/ignition-core/test/mocks/verify/fqn-contract-name/journal.jsonl @@ -0,0 +1,12 @@ + +{"chainId":11155111,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"LockModule#UUUUU","constructorArgs":[],"contractName":"contracts/Lib.sol:UUUUU","dependencies":[],"from":"0x224e16b1b84a3c79552dbbc37070c348cacd1197","futureId":"LockModule#UUUUU","futureType":"NAMED_ARTIFACT_LIBRARY_DEPLOYMENT","libraries":{},"strategy":"basic","type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"LockModule#UUUUU","networkInteraction":{"data":"0x61023a610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063856c67f414610045578063a3a79ad71461006e575b600080fd5b81801561005157600080fd5b5061006c60048036038101906100679190610120565b61008c565b005b6100766100d8565b604051610083919061015c565b60405180910390f35b7fbbd59f58682e05b023d29551eca4f8ef7fb7413f5dc80469ddef4d332586fd256100b56100d8565b826100c091906101a6565b6040516100cd91906101e9565b60405180910390a150565b6000641cbe86ba4d905090565b600080fd5b6000819050919050565b6100fd816100ea565b811461010857600080fd5b50565b60008135905061011a816100f4565b92915050565b600060208284031215610136576101356100e5565b5b60006101448482850161010b565b91505092915050565b610156816100ea565b82525050565b6000602082019050610171600083018461014d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006101b1826100ea565b91506101bc836100ea565b92508282019050808211156101d4576101d3610177565b5b92915050565b6101e3816100ea565b82525050565b60006020820190506101fe60008301846101da565b9291505056fea2646970667358221220c15d1d30c7e4fcaa2bcd8092153ba13d28b770b6e90531af7317221cc4a474dd64736f6c63430008130033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"LockModule#UUUUU","networkInteractionId":1,"nonce":20,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1194885894"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000000"}},"hash":"0xf645bc9bbbb2d7a595b985877a0665da1a75688e246aef8bdebf16ba39e64874"},"type":"TRANSACTION_SEND"} +{"futureId":"LockModule#UUUUU","hash":"0xf645bc9bbbb2d7a595b985877a0665da1a75688e246aef8bdebf16ba39e64874","networkInteractionId":1,"receipt":{"blockHash":"0xf4ea82d7d514e41cf2e7bc7e2b7aefb7816674646340f54ab939b0489dd49dca","blockNumber":4792250,"contractAddress":"0x0B014cb3B1AF9F45123195B37538Fb9dB6F5eF5F","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"LockModule#UUUUU","result":{"address":"0x0B014cb3B1AF9F45123195B37538Fb9dB6F5eF5F","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"artifactId":"LockModule#WAAIT","constructorArgs":[],"contractName":"WAAIT","dependencies":["LockModule#UUUUU"],"from":"0x224e16b1b84a3c79552dbbc37070c348cacd1197","futureId":"LockModule#WAAIT","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{"UUUUU":"0x0B014cb3B1AF9F45123195B37538Fb9dB6F5eF5F"},"strategy":"basic","type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"LockModule#WAAIT","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50730B014cb3B1AF9F45123195B37538Fb9dB6F5eF5F63856c67f4730B014cb3B1AF9F45123195B37538Fb9dB6F5eF5F63a3a79ad76040518163ffffffff1660e01b8152600401602060405180830381865af4158015610074573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100989190610124565b6040518263ffffffff1660e01b81526004016100b49190610160565b60006040518083038186803b1580156100cc57600080fd5b505af41580156100e0573d6000803e3d6000fd5b5050505061017b565b600080fd5b6000819050919050565b610101816100ee565b811461010c57600080fd5b50565b60008151905061011e816100f8565b92915050565b60006020828403121561013a576101396100e9565b5b60006101488482850161010f565b91505092915050565b61015a816100ee565b82525050565b60006020820190506101756000830184610151565b92915050565b603f806101896000396000f3fe6080604052600080fdfea2646970667358221220cb2ee4f824d599c1f160d9867571f972f7aaf7ab2f13b22e78324469179161ce64736f6c63430008130033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"LockModule#WAAIT","networkInteractionId":1,"nonce":21,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1223984020"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000000"}},"hash":"0x0465663b8bd048aa61f5eb89bf0bc2ac2457a93304c404482fa1e7155f981344"},"type":"TRANSACTION_SEND"} +{"futureId":"LockModule#WAAIT","hash":"0x0465663b8bd048aa61f5eb89bf0bc2ac2457a93304c404482fa1e7155f981344","networkInteractionId":1,"receipt":{"blockHash":"0xe5f75498ddfd0c6e2f72096c3f6abc52dbb0d521c465ac4c017ab159add6910d","blockNumber":4792255,"contractAddress":"0xb55CE3EEF69AE60CadcF500b3c696351E92216f4","logs":[{"address":"0xb55CE3EEF69AE60CadcF500b3c696351E92216f4","data":"0x000000000000000000000000000000000000000000000000000000397d0d749a","logIndex":14,"topics":["0xbbd59f58682e05b023d29551eca4f8ef7fb7413f5dc80469ddef4d332586fd25"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"LockModule#WAAIT","result":{"address":"0xb55CE3EEF69AE60CadcF500b3c696351E92216f4","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} diff --git a/v-next/ignition-core/test/verify.ts b/v-next/ignition-core/test/verify.ts index 8bdcb1992bc..9d67963e433 100644 --- a/v-next/ignition-core/test/verify.ts +++ b/v-next/ignition-core/test/verify.ts @@ -82,6 +82,31 @@ describe("verify", () => { assert.deepEqual(result2, expectedResult2); }); + it("should yield a correct verify result when contractName is an FQN", async () => { + const deploymentDir = path.join( + __dirname, + "mocks", + "verify", + "fqn-contract-name", + ); + + let sawLibrary = false; + for await (const info of getVerificationInformation(deploymentDir)) { + // Note: the library in this test is called UUUUU + assert(typeof info !== "string", "Expected a VerifyInfo, got a string"); + assert.notInclude( + info.contract, + "contracts/Lib.sol:contracts/Lib.sol:", + "Source name should not be duplicated in the contract FQN", + ); + if (info.contract.endsWith(":UUUUU")) { + assert.equal(info.contract, "contracts/Lib.sol:UUUUU"); + sawLibrary = true; + } + } + assert.isTrue(sawLibrary, "Expected to find the UUUUU library entry"); + }); + it("should yield a verify result for contract with libraries", async () => { const librariesResult = { UUUUU: "0x0B014cb3B1AF9F45123195B37538Fb9dB6F5eF5F",