Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@thirdweb-dev/dynamic-contracts

Package Overview
Dependencies
Maintainers
10
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@thirdweb-dev/dynamic-contracts - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

out/ERC165.sol/ERC165.json

174

out/IBaseRouter.sol/IBaseRouter.json

@@ -916,21 +916,21 @@ {

"absolutePath": "src/interface/IBaseRouter.sol",
"id": 68,
"id": 129,
"exportedSymbols": {
"IBaseRouter": [
67
128
],
"IDefaultExtensionSet": [
117
178
],
"IExtension": [
169
230
]
},
"nodeType": "SourceUnit",
"src": "106:698:1",
"src": "106:698:3",
"nodes": [
{
"id": 43,
"id": 104,
"nodeType": "PragmaDirective",
"src": "106:23:1",
"src": "106:23:3",
"nodes": [],

@@ -945,5 +945,5 @@ "literals": [

{
"id": 44,
"id": 105,
"nodeType": "ImportDirective",
"src": "131:36:1",
"src": "131:36:3",
"nodes": [],

@@ -953,4 +953,4 @@ "absolutePath": "src/interface/IDefaultExtensionSet.sol",

"nameLocation": "-1:-1:-1",
"scope": 68,
"sourceUnit": 118,
"scope": 129,
"sourceUnit": 179,
"symbolAliases": [],

@@ -960,15 +960,15 @@ "unitAlias": ""

{
"id": 67,
"id": 128,
"nodeType": "ContractDefinition",
"src": "169:634:1",
"src": "169:634:3",
"nodes": [
{
"id": 53,
"id": 114,
"nodeType": "FunctionDefinition",
"src": "453:59:1",
"src": "453:59:3",
"nodes": [],
"documentation": {
"id": 47,
"id": 108,
"nodeType": "StructuredDocumentation",
"src": "404:44:1",
"src": "404:44:3",
"text": "@dev Adds a new extension to the router."

@@ -981,5 +981,5 @@ },

"name": "addExtension",
"nameLocation": "462:12:1",
"nameLocation": "462:12:3",
"parameters": {
"id": 51,
"id": 112,
"nodeType": "ParameterList",

@@ -989,32 +989,32 @@ "parameters": [

"constant": false,
"id": 50,
"id": 111,
"mutability": "mutable",
"name": "extension",
"nameLocation": "492:9:1",
"nameLocation": "492:9:3",
"nodeType": "VariableDeclaration",
"scope": 53,
"src": "475:26:1",
"scope": 114,
"src": "475:26:3",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Extension_$139_memory_ptr",
"typeIdentifier": "t_struct$_Extension_$200_memory_ptr",
"typeString": "struct IExtension.Extension"
},
"typeName": {
"id": 49,
"id": 110,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 48,
"id": 109,
"name": "Extension",
"nameLocations": [
"475:9:1"
"475:9:3"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 139,
"src": "475:9:1"
"referencedDeclaration": 200,
"src": "475:9:3"
},
"referencedDeclaration": 139,
"src": "475:9:1",
"referencedDeclaration": 200,
"src": "475:9:3",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Extension_$139_storage_ptr",
"typeIdentifier": "t_struct$_Extension_$200_storage_ptr",
"typeString": "struct IExtension.Extension"

@@ -1026,11 +1026,11 @@ }

],
"src": "474:28:1"
"src": "474:28:3"
},
"returnParameters": {
"id": 52,
"id": 113,
"nodeType": "ParameterList",
"parameters": [],
"src": "511:0:1"
"src": "511:0:3"
},
"scope": 67,
"scope": 128,
"stateMutability": "nonpayable",

@@ -1041,10 +1041,10 @@ "virtual": false,

{
"id": 60,
"id": 121,
"nodeType": "FunctionDefinition",
"src": "610:62:1",
"src": "610:62:3",
"nodes": [],
"documentation": {
"id": 54,
"id": 115,
"nodeType": "StructuredDocumentation",
"src": "518:87:1",
"src": "518:87:3",
"text": "@dev Updates an existing extension in the router, or overrides a default extension."

@@ -1057,5 +1057,5 @@ },

"name": "updateExtension",
"nameLocation": "619:15:1",
"nameLocation": "619:15:3",
"parameters": {
"id": 58,
"id": 119,
"nodeType": "ParameterList",

@@ -1065,32 +1065,32 @@ "parameters": [

"constant": false,
"id": 57,
"id": 118,
"mutability": "mutable",
"name": "extension",
"nameLocation": "652:9:1",
"nameLocation": "652:9:3",
"nodeType": "VariableDeclaration",
"scope": 60,
"src": "635:26:1",
"scope": 121,
"src": "635:26:3",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Extension_$139_memory_ptr",
"typeIdentifier": "t_struct$_Extension_$200_memory_ptr",
"typeString": "struct IExtension.Extension"
},
"typeName": {
"id": 56,
"id": 117,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 55,
"id": 116,
"name": "Extension",
"nameLocations": [
"635:9:1"
"635:9:3"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 139,
"src": "635:9:1"
"referencedDeclaration": 200,
"src": "635:9:3"
},
"referencedDeclaration": 139,
"src": "635:9:1",
"referencedDeclaration": 200,
"src": "635:9:3",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Extension_$139_storage_ptr",
"typeIdentifier": "t_struct$_Extension_$200_storage_ptr",
"typeString": "struct IExtension.Extension"

@@ -1102,11 +1102,11 @@ }

],
"src": "634:28:1"
"src": "634:28:3"
},
"returnParameters": {
"id": 59,
"id": 120,
"nodeType": "ParameterList",
"parameters": [],
"src": "671:0:1"
"src": "671:0:3"
},
"scope": 67,
"scope": 128,
"stateMutability": "nonpayable",

@@ -1117,10 +1117,10 @@ "virtual": false,

{
"id": 66,
"id": 127,
"nodeType": "FunctionDefinition",
"src": "738:63:1",
"src": "738:63:3",
"nodes": [],
"documentation": {
"id": 61,
"id": 122,
"nodeType": "StructuredDocumentation",
"src": "678:55:1",
"src": "678:55:3",
"text": "@dev Removes an existing extension from the router."

@@ -1133,5 +1133,5 @@ },

"name": "removeExtension",
"nameLocation": "747:15:1",
"nameLocation": "747:15:3",
"parameters": {
"id": 64,
"id": 125,
"nodeType": "ParameterList",

@@ -1141,9 +1141,9 @@ "parameters": [

"constant": false,
"id": 63,
"id": 124,
"mutability": "mutable",
"name": "extensionName",
"nameLocation": "777:13:1",
"nameLocation": "777:13:3",
"nodeType": "VariableDeclaration",
"scope": 66,
"src": "763:27:1",
"scope": 127,
"src": "763:27:3",
"stateVariable": false,

@@ -1156,6 +1156,6 @@ "storageLocation": "memory",

"typeName": {
"id": 62,
"id": 123,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "763:6:1",
"src": "763:6:3",
"typeDescriptions": {

@@ -1169,11 +1169,11 @@ "typeIdentifier": "t_string_storage_ptr",

],
"src": "762:29:1"
"src": "762:29:3"
},
"returnParameters": {
"id": 65,
"id": 126,
"nodeType": "ParameterList",
"parameters": [],
"src": "800:0:1"
"src": "800:0:3"
},
"scope": 67,
"scope": 128,
"stateMutability": "nonpayable",

@@ -1188,14 +1188,14 @@ "virtual": false,

"baseName": {
"id": 45,
"id": 106,
"name": "IDefaultExtensionSet",
"nameLocations": [
"194:20:1"
"194:20:3"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 117,
"src": "194:20:1"
"referencedDeclaration": 178,
"src": "194:20:3"
},
"id": 46,
"id": 107,
"nodeType": "InheritanceSpecifier",
"src": "194:20:1"
"src": "194:20:3"
}

@@ -1208,9 +1208,9 @@ ],

"linearizedBaseContracts": [
67,
117,
169
128,
178,
230
],
"name": "IBaseRouter",
"nameLocation": "179:11:1",
"scope": 68,
"nameLocation": "179:11:3",
"scope": 129,
"usedErrors": []

@@ -1221,3 +1221,3 @@ }

},
"id": 1
"id": 3
}

@@ -657,18 +657,18 @@ {

"absolutePath": "src/interface/IDefaultExtensionSet.sol",
"id": 118,
"id": 179,
"exportedSymbols": {
"IDefaultExtensionSet": [
117
178
],
"IExtension": [
169
230
]
},
"nodeType": "SourceUnit",
"src": "106:1143:2",
"src": "106:1143:4",
"nodes": [
{
"id": 69,
"id": 130,
"nodeType": "PragmaDirective",
"src": "106:23:2",
"src": "106:23:4",
"nodes": [],

@@ -683,5 +683,5 @@ "literals": [

{
"id": 70,
"id": 131,
"nodeType": "ImportDirective",
"src": "131:26:2",
"src": "131:26:4",
"nodes": [],

@@ -691,4 +691,4 @@ "absolutePath": "src/interface/IExtension.sol",

"nameLocation": "-1:-1:-1",
"scope": 118,
"sourceUnit": 170,
"scope": 179,
"sourceUnit": 231,
"symbolAliases": [],

@@ -698,15 +698,15 @@ "unitAlias": ""

{
"id": 117,
"id": 178,
"nodeType": "ContractDefinition",
"src": "159:1090:2",
"src": "159:1090:4",
"nodes": [
{
"id": 80,
"id": 141,
"nodeType": "FunctionDefinition",
"src": "437:71:2",
"src": "437:71:4",
"nodes": [],
"documentation": {
"id": 73,
"id": 134,
"nodeType": "StructuredDocumentation",
"src": "393:39:2",
"src": "393:39:4",
"text": "@dev Returns all extensions stored."

@@ -719,11 +719,11 @@ },

"name": "getAllExtensions",
"nameLocation": "446:16:2",
"nameLocation": "446:16:4",
"parameters": {
"id": 74,
"id": 135,
"nodeType": "ParameterList",
"parameters": [],
"src": "462:2:2"
"src": "462:2:4"
},
"returnParameters": {
"id": 79,
"id": 140,
"nodeType": "ParameterList",

@@ -733,3 +733,3 @@ "parameters": [

"constant": false,
"id": 78,
"id": 139,
"mutability": "mutable",

@@ -739,8 +739,8 @@ "name": "",

"nodeType": "VariableDeclaration",
"scope": 80,
"src": "488:18:2",
"scope": 141,
"src": "488:18:4",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Extension_$139_memory_ptr_$dyn_memory_ptr",
"typeIdentifier": "t_array$_t_struct$_Extension_$200_memory_ptr_$dyn_memory_ptr",
"typeString": "struct IExtension.Extension[]"

@@ -750,26 +750,26 @@ },

"baseType": {
"id": 76,
"id": 137,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 75,
"id": 136,
"name": "Extension",
"nameLocations": [
"488:9:2"
"488:9:4"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 139,
"src": "488:9:2"
"referencedDeclaration": 200,
"src": "488:9:4"
},
"referencedDeclaration": 139,
"src": "488:9:2",
"referencedDeclaration": 200,
"src": "488:9:4",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Extension_$139_storage_ptr",
"typeIdentifier": "t_struct$_Extension_$200_storage_ptr",
"typeString": "struct IExtension.Extension"
}
},
"id": 77,
"id": 138,
"nodeType": "ArrayTypeName",
"src": "488:11:2",
"src": "488:11:4",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Extension_$139_storage_$dyn_storage_ptr",
"typeIdentifier": "t_array$_t_struct$_Extension_$200_storage_$dyn_storage_ptr",
"typeString": "struct IExtension.Extension[]"

@@ -781,5 +781,5 @@ }

],
"src": "487:20:2"
"src": "487:20:4"
},
"scope": 117,
"scope": 178,
"stateMutability": "view",

@@ -790,10 +790,10 @@ "virtual": false,

{
"id": 90,
"id": 151,
"nodeType": "FunctionDefinition",
"src": "594:116:2",
"src": "594:116:4",
"nodes": [],
"documentation": {
"id": 81,
"id": 142,
"nodeType": "StructuredDocumentation",
"src": "514:75:2",
"src": "514:75:4",
"text": "@dev Returns all functions that belong to the given extension contract."

@@ -806,5 +806,5 @@ },

"name": "getAllFunctionsOfExtension",
"nameLocation": "603:26:2",
"nameLocation": "603:26:4",
"parameters": {
"id": 84,
"id": 145,
"nodeType": "ParameterList",

@@ -814,9 +814,9 @@ "parameters": [

"constant": false,
"id": 83,
"id": 144,
"mutability": "mutable",
"name": "extensionName",
"nameLocation": "644:13:2",
"nameLocation": "644:13:4",
"nodeType": "VariableDeclaration",
"scope": 90,
"src": "630:27:2",
"scope": 151,
"src": "630:27:4",
"stateVariable": false,

@@ -829,6 +829,6 @@ "storageLocation": "memory",

"typeName": {
"id": 82,
"id": 143,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "630:6:2",
"src": "630:6:4",
"typeDescriptions": {

@@ -842,6 +842,6 @@ "typeIdentifier": "t_string_storage_ptr",

],
"src": "629:29:2"
"src": "629:29:4"
},
"returnParameters": {
"id": 89,
"id": 150,
"nodeType": "ParameterList",

@@ -851,3 +851,3 @@ "parameters": [

"constant": false,
"id": 88,
"id": 149,
"mutability": "mutable",

@@ -857,8 +857,8 @@ "name": "",

"nodeType": "VariableDeclaration",
"scope": 90,
"src": "682:26:2",
"scope": 151,
"src": "682:26:4",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$131_memory_ptr_$dyn_memory_ptr",
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$192_memory_ptr_$dyn_memory_ptr",
"typeString": "struct IExtension.ExtensionFunction[]"

@@ -868,26 +868,26 @@ },

"baseType": {
"id": 86,
"id": 147,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 85,
"id": 146,
"name": "ExtensionFunction",
"nameLocations": [
"682:17:2"
"682:17:4"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 131,
"src": "682:17:2"
"referencedDeclaration": 192,
"src": "682:17:4"
},
"referencedDeclaration": 131,
"src": "682:17:2",
"referencedDeclaration": 192,
"src": "682:17:4",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExtensionFunction_$131_storage_ptr",
"typeIdentifier": "t_struct$_ExtensionFunction_$192_storage_ptr",
"typeString": "struct IExtension.ExtensionFunction"
}
},
"id": 87,
"id": 148,
"nodeType": "ArrayTypeName",
"src": "682:19:2",
"src": "682:19:4",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$131_storage_$dyn_storage_ptr",
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$192_storage_$dyn_storage_ptr",
"typeString": "struct IExtension.ExtensionFunction[]"

@@ -899,5 +899,5 @@ }

],
"src": "681:28:2"
"src": "681:28:4"
},
"scope": 117,
"scope": 178,
"stateMutability": "view",

@@ -908,10 +908,10 @@ "virtual": false,

{
"id": 99,
"id": 160,
"nodeType": "FunctionDefinition",
"src": "782:107:2",
"src": "782:107:4",
"nodes": [],
"documentation": {
"id": 91,
"id": 152,
"nodeType": "StructuredDocumentation",
"src": "716:61:2",
"src": "716:61:4",
"text": "@dev Returns the extension metadata for a given function."

@@ -924,5 +924,5 @@ },

"name": "getExtensionForFunction",
"nameLocation": "791:23:2",
"nameLocation": "791:23:4",
"parameters": {
"id": 94,
"id": 155,
"nodeType": "ParameterList",

@@ -932,9 +932,9 @@ "parameters": [

"constant": false,
"id": 93,
"id": 154,
"mutability": "mutable",
"name": "functionSelector",
"nameLocation": "822:16:2",
"nameLocation": "822:16:4",
"nodeType": "VariableDeclaration",
"scope": 99,
"src": "815:23:2",
"scope": 160,
"src": "815:23:4",
"stateVariable": false,

@@ -947,6 +947,6 @@ "storageLocation": "default",

"typeName": {
"id": 92,
"id": 153,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "815:6:2",
"src": "815:6:4",
"typeDescriptions": {

@@ -960,6 +960,6 @@ "typeIdentifier": "t_bytes4",

],
"src": "814:25:2"
"src": "814:25:4"
},
"returnParameters": {
"id": 98,
"id": 159,
"nodeType": "ParameterList",

@@ -969,3 +969,3 @@ "parameters": [

"constant": false,
"id": 97,
"id": 158,
"mutability": "mutable",

@@ -975,27 +975,27 @@ "name": "",

"nodeType": "VariableDeclaration",
"scope": 99,
"src": "863:24:2",
"scope": 160,
"src": "863:24:4",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExtensionMetadata_$126_memory_ptr",
"typeIdentifier": "t_struct$_ExtensionMetadata_$187_memory_ptr",
"typeString": "struct IExtension.ExtensionMetadata"
},
"typeName": {
"id": 96,
"id": 157,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 95,
"id": 156,
"name": "ExtensionMetadata",
"nameLocations": [
"863:17:2"
"863:17:4"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 126,
"src": "863:17:2"
"referencedDeclaration": 187,
"src": "863:17:4"
},
"referencedDeclaration": 126,
"src": "863:17:2",
"referencedDeclaration": 187,
"src": "863:17:4",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExtensionMetadata_$126_storage_ptr",
"typeIdentifier": "t_struct$_ExtensionMetadata_$187_storage_ptr",
"typeString": "struct IExtension.ExtensionMetadata"

@@ -1007,5 +1007,5 @@ }

],
"src": "862:26:2"
"src": "862:26:4"
},
"scope": 117,
"scope": 178,
"stateMutability": "view",

@@ -1016,10 +1016,10 @@ "virtual": false,

{
"id": 107,
"id": 168,
"nodeType": "FunctionDefinition",
"src": "971:97:2",
"src": "971:97:4",
"nodes": [],
"documentation": {
"id": 100,
"id": 161,
"nodeType": "StructuredDocumentation",
"src": "895:71:2",
"src": "895:71:4",
"text": "@dev Returns the extension's implementation smart contract address."

@@ -1032,5 +1032,5 @@ },

"name": "getExtensionImplementation",
"nameLocation": "980:26:2",
"nameLocation": "980:26:4",
"parameters": {
"id": 103,
"id": 164,
"nodeType": "ParameterList",

@@ -1040,9 +1040,9 @@ "parameters": [

"constant": false,
"id": 102,
"id": 163,
"mutability": "mutable",
"name": "extensionName",
"nameLocation": "1021:13:2",
"nameLocation": "1021:13:4",
"nodeType": "VariableDeclaration",
"scope": 107,
"src": "1007:27:2",
"scope": 168,
"src": "1007:27:4",
"stateVariable": false,

@@ -1055,6 +1055,6 @@ "storageLocation": "memory",

"typeName": {
"id": 101,
"id": 162,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1007:6:2",
"src": "1007:6:4",
"typeDescriptions": {

@@ -1068,6 +1068,6 @@ "typeIdentifier": "t_string_storage_ptr",

],
"src": "1006:29:2"
"src": "1006:29:4"
},
"returnParameters": {
"id": 106,
"id": 167,
"nodeType": "ParameterList",

@@ -1077,3 +1077,3 @@ "parameters": [

"constant": false,
"id": 105,
"id": 166,
"mutability": "mutable",

@@ -1083,4 +1083,4 @@ "name": "",

"nodeType": "VariableDeclaration",
"scope": 107,
"src": "1059:7:2",
"scope": 168,
"src": "1059:7:4",
"stateVariable": false,

@@ -1093,6 +1093,6 @@ "storageLocation": "default",

"typeName": {
"id": 104,
"id": 165,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1059:7:2",
"src": "1059:7:4",
"stateMutability": "nonpayable",

@@ -1107,5 +1107,5 @@ "typeDescriptions": {

],
"src": "1058:9:2"
"src": "1058:9:4"
},
"scope": 117,
"scope": 178,
"stateMutability": "view",

@@ -1116,10 +1116,10 @@ "virtual": false,

{
"id": 116,
"id": 177,
"nodeType": "FunctionDefinition",
"src": "1155:92:2",
"src": "1155:92:4",
"nodes": [],
"documentation": {
"id": 108,
"id": 169,
"nodeType": "StructuredDocumentation",
"src": "1074:76:2",
"src": "1074:76:4",
"text": "@dev Returns the extension metadata and functions for a given extension."

@@ -1132,5 +1132,5 @@ },

"name": "getExtension",
"nameLocation": "1164:12:2",
"nameLocation": "1164:12:4",
"parameters": {
"id": 111,
"id": 172,
"nodeType": "ParameterList",

@@ -1140,9 +1140,9 @@ "parameters": [

"constant": false,
"id": 110,
"id": 171,
"mutability": "mutable",
"name": "extensionName",
"nameLocation": "1191:13:2",
"nameLocation": "1191:13:4",
"nodeType": "VariableDeclaration",
"scope": 116,
"src": "1177:27:2",
"scope": 177,
"src": "1177:27:4",
"stateVariable": false,

@@ -1155,6 +1155,6 @@ "storageLocation": "memory",

"typeName": {
"id": 109,
"id": 170,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1177:6:2",
"src": "1177:6:4",
"typeDescriptions": {

@@ -1168,6 +1168,6 @@ "typeIdentifier": "t_string_storage_ptr",

],
"src": "1176:29:2"
"src": "1176:29:4"
},
"returnParameters": {
"id": 115,
"id": 176,
"nodeType": "ParameterList",

@@ -1177,3 +1177,3 @@ "parameters": [

"constant": false,
"id": 114,
"id": 175,
"mutability": "mutable",

@@ -1183,27 +1183,27 @@ "name": "",

"nodeType": "VariableDeclaration",
"scope": 116,
"src": "1229:16:2",
"scope": 177,
"src": "1229:16:4",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Extension_$139_memory_ptr",
"typeIdentifier": "t_struct$_Extension_$200_memory_ptr",
"typeString": "struct IExtension.Extension"
},
"typeName": {
"id": 113,
"id": 174,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 112,
"id": 173,
"name": "Extension",
"nameLocations": [
"1229:9:2"
"1229:9:4"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 139,
"src": "1229:9:2"
"referencedDeclaration": 200,
"src": "1229:9:4"
},
"referencedDeclaration": 139,
"src": "1229:9:2",
"referencedDeclaration": 200,
"src": "1229:9:4",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Extension_$139_storage_ptr",
"typeIdentifier": "t_struct$_Extension_$200_storage_ptr",
"typeString": "struct IExtension.Extension"

@@ -1215,5 +1215,5 @@ }

],
"src": "1228:18:2"
"src": "1228:18:4"
},
"scope": 117,
"scope": 178,
"stateMutability": "view",

@@ -1228,14 +1228,14 @@ "virtual": false,

"baseName": {
"id": 71,
"id": 132,
"name": "IExtension",
"nameLocations": [
"193:10:2"
"193:10:4"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 169,
"src": "193:10:2"
"referencedDeclaration": 230,
"src": "193:10:4"
},
"id": 72,
"id": 133,
"nodeType": "InheritanceSpecifier",
"src": "193:10:2"
"src": "193:10:4"
}

@@ -1248,8 +1248,8 @@ ],

"linearizedBaseContracts": [
117,
169
178,
230
],
"name": "IDefaultExtensionSet",
"nameLocation": "169:20:2",
"scope": 118,
"nameLocation": "169:20:4",
"scope": 179,
"usedErrors": []

@@ -1260,3 +1260,3 @@ }

},
"id": 2
"id": 4
}

@@ -227,15 +227,15 @@ {

"absolutePath": "src/interface/IExtension.sol",
"id": 170,
"id": 231,
"exportedSymbols": {
"IExtension": [
169
230
]
},
"nodeType": "SourceUnit",
"src": "106:2295:3",
"src": "106:2295:5",
"nodes": [
{
"id": 119,
"id": 180,
"nodeType": "PragmaDirective",
"src": "106:23:3",
"src": "106:23:5",
"nodes": [],

@@ -250,10 +250,10 @@ "literals": [

{
"id": 169,
"id": 230,
"nodeType": "ContractDefinition",
"src": "131:2269:3",
"src": "131:2269:5",
"nodes": [
{
"id": 126,
"id": 187,
"nodeType": "StructDefinition",
"src": "643:113:3",
"src": "643:113:5",
"nodes": [],

@@ -264,9 +264,9 @@ "canonicalName": "IExtension.ExtensionMetadata",

"constant": false,
"id": 121,
"id": 182,
"mutability": "mutable",
"name": "name",
"nameLocation": "685:4:3",
"nameLocation": "685:4:5",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "678:11:3",
"scope": 187,
"src": "678:11:5",
"stateVariable": false,

@@ -279,6 +279,6 @@ "storageLocation": "default",

"typeName": {
"id": 120,
"id": 181,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "678:6:3",
"src": "678:6:5",
"typeDescriptions": {

@@ -293,9 +293,9 @@ "typeIdentifier": "t_string_storage_ptr",

"constant": false,
"id": 123,
"id": 184,
"mutability": "mutable",
"name": "metadataURI",
"nameLocation": "706:11:3",
"nameLocation": "706:11:5",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "699:18:3",
"scope": 187,
"src": "699:18:5",
"stateVariable": false,

@@ -308,6 +308,6 @@ "storageLocation": "default",

"typeName": {
"id": 122,
"id": 183,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "699:6:3",
"src": "699:6:5",
"typeDescriptions": {

@@ -322,9 +322,9 @@ "typeIdentifier": "t_string_storage_ptr",

"constant": false,
"id": 125,
"id": 186,
"mutability": "mutable",
"name": "implementation",
"nameLocation": "735:14:3",
"nameLocation": "735:14:5",
"nodeType": "VariableDeclaration",
"scope": 126,
"src": "727:22:3",
"scope": 187,
"src": "727:22:5",
"stateVariable": false,

@@ -337,6 +337,6 @@ "storageLocation": "default",

"typeName": {
"id": 124,
"id": 185,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "727:7:3",
"src": "727:7:5",
"stateMutability": "nonpayable",

@@ -352,10 +352,10 @@ "typeDescriptions": {

"name": "ExtensionMetadata",
"nameLocation": "650:17:3",
"scope": 169,
"nameLocation": "650:17:5",
"scope": 230,
"visibility": "public"
},
{
"id": 131,
"id": 192,
"nodeType": "StructDefinition",
"src": "1030:99:3",
"src": "1030:99:5",
"nodes": [],

@@ -366,9 +366,9 @@ "canonicalName": "IExtension.ExtensionFunction",

"constant": false,
"id": 128,
"id": 189,
"mutability": "mutable",
"name": "functionSelector",
"nameLocation": "1072:16:3",
"nameLocation": "1072:16:5",
"nodeType": "VariableDeclaration",
"scope": 131,
"src": "1065:23:3",
"scope": 192,
"src": "1065:23:5",
"stateVariable": false,

@@ -381,6 +381,6 @@ "storageLocation": "default",

"typeName": {
"id": 127,
"id": 188,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1065:6:3",
"src": "1065:6:5",
"typeDescriptions": {

@@ -395,9 +395,9 @@ "typeIdentifier": "t_bytes4",

"constant": false,
"id": 130,
"id": 191,
"mutability": "mutable",
"name": "functionSignature",
"nameLocation": "1105:17:3",
"nameLocation": "1105:17:5",
"nodeType": "VariableDeclaration",
"scope": 131,
"src": "1098:24:3",
"scope": 192,
"src": "1098:24:5",
"stateVariable": false,

@@ -410,6 +410,6 @@ "storageLocation": "default",

"typeName": {
"id": 129,
"id": 190,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1098:6:3",
"src": "1098:6:5",
"typeDescriptions": {

@@ -424,10 +424,10 @@ "typeIdentifier": "t_string_storage_ptr",

"name": "ExtensionFunction",
"nameLocation": "1037:17:3",
"scope": 169,
"nameLocation": "1037:17:5",
"scope": 230,
"visibility": "public"
},
{
"id": 139,
"id": 200,
"nodeType": "StructDefinition",
"src": "1400:99:3",
"src": "1400:99:5",
"nodes": [],

@@ -438,32 +438,32 @@ "canonicalName": "IExtension.Extension",

"constant": false,
"id": 134,
"id": 195,
"mutability": "mutable",
"name": "metadata",
"nameLocation": "1445:8:3",
"nameLocation": "1445:8:5",
"nodeType": "VariableDeclaration",
"scope": 139,
"src": "1427:26:3",
"scope": 200,
"src": "1427:26:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExtensionMetadata_$126_storage_ptr",
"typeIdentifier": "t_struct$_ExtensionMetadata_$187_storage_ptr",
"typeString": "struct IExtension.ExtensionMetadata"
},
"typeName": {
"id": 133,
"id": 194,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 132,
"id": 193,
"name": "ExtensionMetadata",
"nameLocations": [
"1427:17:3"
"1427:17:5"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 126,
"src": "1427:17:3"
"referencedDeclaration": 187,
"src": "1427:17:5"
},
"referencedDeclaration": 126,
"src": "1427:17:3",
"referencedDeclaration": 187,
"src": "1427:17:5",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExtensionMetadata_$126_storage_ptr",
"typeIdentifier": "t_struct$_ExtensionMetadata_$187_storage_ptr",
"typeString": "struct IExtension.ExtensionMetadata"

@@ -476,13 +476,13 @@ }

"constant": false,
"id": 138,
"id": 199,
"mutability": "mutable",
"name": "functions",
"nameLocation": "1483:9:3",
"nameLocation": "1483:9:5",
"nodeType": "VariableDeclaration",
"scope": 139,
"src": "1463:29:3",
"scope": 200,
"src": "1463:29:5",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$131_storage_$dyn_storage_ptr",
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$192_storage_$dyn_storage_ptr",
"typeString": "struct IExtension.ExtensionFunction[]"

@@ -492,26 +492,26 @@ },

"baseType": {
"id": 136,
"id": 197,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 135,
"id": 196,
"name": "ExtensionFunction",
"nameLocations": [
"1463:17:3"
"1463:17:5"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 131,
"src": "1463:17:3"
"referencedDeclaration": 192,
"src": "1463:17:5"
},
"referencedDeclaration": 131,
"src": "1463:17:3",
"referencedDeclaration": 192,
"src": "1463:17:5",
"typeDescriptions": {
"typeIdentifier": "t_struct$_ExtensionFunction_$131_storage_ptr",
"typeIdentifier": "t_struct$_ExtensionFunction_$192_storage_ptr",
"typeString": "struct IExtension.ExtensionFunction"
}
},
"id": 137,
"id": 198,
"nodeType": "ArrayTypeName",
"src": "1463:19:3",
"src": "1463:19:5",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$131_storage_$dyn_storage_ptr",
"typeIdentifier": "t_array$_t_struct$_ExtensionFunction_$192_storage_$dyn_storage_ptr",
"typeString": "struct IExtension.ExtensionFunction[]"

@@ -524,16 +524,16 @@ }

"name": "Extension",
"nameLocation": "1407:9:3",
"scope": 169,
"nameLocation": "1407:9:5",
"scope": 230,
"visibility": "public"
},
{
"id": 148,
"id": 209,
"nodeType": "EventDefinition",
"src": "1776:114:3",
"src": "1776:114:5",
"nodes": [],
"anonymous": false,
"documentation": {
"id": 140,
"id": 201,
"nodeType": "StructuredDocumentation",
"src": "1684:87:3",
"src": "1684:87:5",
"text": "@dev Emitted when a extension is added; emitted for each function of the extension."

@@ -543,5 +543,5 @@ },

"name": "ExtensionAdded",
"nameLocation": "1782:14:3",
"nameLocation": "1782:14:5",
"parameters": {
"id": 147,
"id": 208,
"nodeType": "ParameterList",

@@ -551,10 +551,10 @@ "parameters": [

"constant": false,
"id": 142,
"id": 203,
"indexed": true,
"mutability": "mutable",
"name": "extensionAddress",
"nameLocation": "1813:16:3",
"nameLocation": "1813:16:5",
"nodeType": "VariableDeclaration",
"scope": 148,
"src": "1797:32:3",
"scope": 209,
"src": "1797:32:5",
"stateVariable": false,

@@ -567,6 +567,6 @@ "storageLocation": "default",

"typeName": {
"id": 141,
"id": 202,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1797:7:3",
"src": "1797:7:5",
"stateMutability": "nonpayable",

@@ -582,10 +582,10 @@ "typeDescriptions": {

"constant": false,
"id": 144,
"id": 205,
"indexed": true,
"mutability": "mutable",
"name": "functionSelector",
"nameLocation": "1846:16:3",
"nameLocation": "1846:16:5",
"nodeType": "VariableDeclaration",
"scope": 148,
"src": "1831:31:3",
"scope": 209,
"src": "1831:31:5",
"stateVariable": false,

@@ -598,6 +598,6 @@ "storageLocation": "default",

"typeName": {
"id": 143,
"id": 204,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1831:6:3",
"src": "1831:6:5",
"typeDescriptions": {

@@ -612,10 +612,10 @@ "typeIdentifier": "t_bytes4",

"constant": false,
"id": 146,
"id": 207,
"indexed": false,
"mutability": "mutable",
"name": "functionSignature",
"nameLocation": "1871:17:3",
"nameLocation": "1871:17:5",
"nodeType": "VariableDeclaration",
"scope": 148,
"src": "1864:24:3",
"scope": 209,
"src": "1864:24:5",
"stateVariable": false,

@@ -628,6 +628,6 @@ "storageLocation": "default",

"typeName": {
"id": 145,
"id": 206,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1864:6:3",
"src": "1864:6:5",
"typeDescriptions": {

@@ -641,15 +641,15 @@ "typeIdentifier": "t_string_storage_ptr",

],
"src": "1796:93:3"
"src": "1796:93:5"
}
},
{
"id": 159,
"id": 220,
"nodeType": "EventDefinition",
"src": "1988:194:3",
"src": "1988:194:5",
"nodes": [],
"anonymous": false,
"documentation": {
"id": 149,
"id": 210,
"nodeType": "StructuredDocumentation",
"src": "1896:87:3",
"src": "1896:87:5",
"text": "@dev Emitted when extension is updated; emitted for each function of the extension."

@@ -659,5 +659,5 @@ },

"name": "ExtensionUpdated",
"nameLocation": "1994:16:3",
"nameLocation": "1994:16:5",
"parameters": {
"id": 158,
"id": 219,
"nodeType": "ParameterList",

@@ -667,10 +667,10 @@ "parameters": [

"constant": false,
"id": 151,
"id": 212,
"indexed": true,
"mutability": "mutable",
"name": "oldExtensionAddress",
"nameLocation": "2036:19:3",
"nameLocation": "2036:19:5",
"nodeType": "VariableDeclaration",
"scope": 159,
"src": "2020:35:3",
"scope": 220,
"src": "2020:35:5",
"stateVariable": false,

@@ -683,6 +683,6 @@ "storageLocation": "default",

"typeName": {
"id": 150,
"id": 211,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2020:7:3",
"src": "2020:7:5",
"stateMutability": "nonpayable",

@@ -698,10 +698,10 @@ "typeDescriptions": {

"constant": false,
"id": 153,
"id": 214,
"indexed": true,
"mutability": "mutable",
"name": "newExtensionAddress",
"nameLocation": "2081:19:3",
"nameLocation": "2081:19:5",
"nodeType": "VariableDeclaration",
"scope": 159,
"src": "2065:35:3",
"scope": 220,
"src": "2065:35:5",
"stateVariable": false,

@@ -714,6 +714,6 @@ "storageLocation": "default",

"typeName": {
"id": 152,
"id": 213,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2065:7:3",
"src": "2065:7:5",
"stateMutability": "nonpayable",

@@ -729,10 +729,10 @@ "typeDescriptions": {

"constant": false,
"id": 155,
"id": 216,
"indexed": true,
"mutability": "mutable",
"name": "functionSelector",
"nameLocation": "2125:16:3",
"nameLocation": "2125:16:5",
"nodeType": "VariableDeclaration",
"scope": 159,
"src": "2110:31:3",
"scope": 220,
"src": "2110:31:5",
"stateVariable": false,

@@ -745,6 +745,6 @@ "storageLocation": "default",

"typeName": {
"id": 154,
"id": 215,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "2110:6:3",
"src": "2110:6:5",
"typeDescriptions": {

@@ -759,10 +759,10 @@ "typeIdentifier": "t_bytes4",

"constant": false,
"id": 157,
"id": 218,
"indexed": false,
"mutability": "mutable",
"name": "functionSignature",
"nameLocation": "2158:17:3",
"nameLocation": "2158:17:5",
"nodeType": "VariableDeclaration",
"scope": 159,
"src": "2151:24:3",
"scope": 220,
"src": "2151:24:5",
"stateVariable": false,

@@ -775,6 +775,6 @@ "storageLocation": "default",

"typeName": {
"id": 156,
"id": 217,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2151:6:3",
"src": "2151:6:5",
"typeDescriptions": {

@@ -788,15 +788,15 @@ "typeIdentifier": "t_string_storage_ptr",

],
"src": "2010:171:3"
"src": "2010:171:5"
}
},
{
"id": 168,
"id": 229,
"nodeType": "EventDefinition",
"src": "2282:116:3",
"src": "2282:116:5",
"nodes": [],
"anonymous": false,
"documentation": {
"id": 160,
"id": 221,
"nodeType": "StructuredDocumentation",
"src": "2188:89:3",
"src": "2188:89:5",
"text": "@dev Emitted when a extension is removed; emitted for each function of the extension."

@@ -806,5 +806,5 @@ },

"name": "ExtensionRemoved",
"nameLocation": "2288:16:3",
"nameLocation": "2288:16:5",
"parameters": {
"id": 167,
"id": 228,
"nodeType": "ParameterList",

@@ -814,10 +814,10 @@ "parameters": [

"constant": false,
"id": 162,
"id": 223,
"indexed": true,
"mutability": "mutable",
"name": "extensionAddress",
"nameLocation": "2321:16:3",
"nameLocation": "2321:16:5",
"nodeType": "VariableDeclaration",
"scope": 168,
"src": "2305:32:3",
"scope": 229,
"src": "2305:32:5",
"stateVariable": false,

@@ -830,6 +830,6 @@ "storageLocation": "default",

"typeName": {
"id": 161,
"id": 222,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2305:7:3",
"src": "2305:7:5",
"stateMutability": "nonpayable",

@@ -845,10 +845,10 @@ "typeDescriptions": {

"constant": false,
"id": 164,
"id": 225,
"indexed": true,
"mutability": "mutable",
"name": "functionSelector",
"nameLocation": "2354:16:3",
"nameLocation": "2354:16:5",
"nodeType": "VariableDeclaration",
"scope": 168,
"src": "2339:31:3",
"scope": 229,
"src": "2339:31:5",
"stateVariable": false,

@@ -861,6 +861,6 @@ "storageLocation": "default",

"typeName": {
"id": 163,
"id": 224,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "2339:6:3",
"src": "2339:6:5",
"typeDescriptions": {

@@ -875,10 +875,10 @@ "typeIdentifier": "t_bytes4",

"constant": false,
"id": 166,
"id": 227,
"indexed": false,
"mutability": "mutable",
"name": "functionSignature",
"nameLocation": "2379:17:3",
"nameLocation": "2379:17:5",
"nodeType": "VariableDeclaration",
"scope": 168,
"src": "2372:24:3",
"scope": 229,
"src": "2372:24:5",
"stateVariable": false,

@@ -891,6 +891,6 @@ "storageLocation": "default",

"typeName": {
"id": 165,
"id": 226,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2372:6:3",
"src": "2372:6:5",
"typeDescriptions": {

@@ -904,3 +904,3 @@ "typeIdentifier": "t_string_storage_ptr",

],
"src": "2304:93:3"
"src": "2304:93:5"
}

@@ -916,7 +916,7 @@ }

"linearizedBaseContracts": [
169
230
],
"name": "IExtension",
"nameLocation": "141:10:3",
"scope": 170,
"nameLocation": "141:10:5",
"scope": 231,
"usedErrors": []

@@ -927,3 +927,3 @@ }

},
"id": 3
"id": 5
}

@@ -123,15 +123,15 @@ {

"absolutePath": "src/interface/IRouter.sol",
"id": 186,
"id": 247,
"exportedSymbols": {
"IRouter": [
185
246
]
},
"nodeType": "SourceUnit",
"src": "106:213:4",
"src": "106:213:6",
"nodes": [
{
"id": 171,
"id": 232,
"nodeType": "PragmaDirective",
"src": "106:23:4",
"src": "106:23:6",
"nodes": [],

@@ -146,10 +146,10 @@ "literals": [

{
"id": 185,
"id": 246,
"nodeType": "ContractDefinition",
"src": "131:188:4",
"src": "131:188:6",
"nodes": [
{
"id": 174,
"id": 235,
"nodeType": "FunctionDefinition",
"src": "155:28:4",
"src": "155:28:6",
"nodes": [],

@@ -162,14 +162,14 @@ "implemented": false,

"parameters": {
"id": 172,
"id": 233,
"nodeType": "ParameterList",
"parameters": [],
"src": "163:2:4"
"src": "163:2:6"
},
"returnParameters": {
"id": 173,
"id": 234,
"nodeType": "ParameterList",
"parameters": [],
"src": "182:0:4"
"src": "182:0:6"
},
"scope": 185,
"scope": 246,
"stateMutability": "payable",

@@ -180,5 +180,5 @@ "virtual": false,

{
"id": 177,
"id": 238,
"nodeType": "FunctionDefinition",
"src": "188:27:4",
"src": "188:27:6",
"nodes": [],

@@ -191,14 +191,14 @@ "implemented": false,

"parameters": {
"id": 175,
"id": 236,
"nodeType": "ParameterList",
"parameters": [],
"src": "195:2:4"
"src": "195:2:6"
},
"returnParameters": {
"id": 176,
"id": 237,
"nodeType": "ParameterList",
"parameters": [],
"src": "214:0:4"
"src": "214:0:6"
},
"scope": 185,
"scope": 246,
"stateMutability": "payable",

@@ -209,5 +209,5 @@ "virtual": false,

{
"id": 184,
"id": 245,
"nodeType": "FunctionDefinition",
"src": "221:96:4",
"src": "221:96:6",
"nodes": [],

@@ -219,5 +219,5 @@ "functionSelector": "ce0b6013",

"name": "getImplementationForFunction",
"nameLocation": "230:28:4",
"nameLocation": "230:28:6",
"parameters": {
"id": 180,
"id": 241,
"nodeType": "ParameterList",

@@ -227,9 +227,9 @@ "parameters": [

"constant": false,
"id": 179,
"id": 240,
"mutability": "mutable",
"name": "_functionSelector",
"nameLocation": "266:17:4",
"nameLocation": "266:17:6",
"nodeType": "VariableDeclaration",
"scope": 184,
"src": "259:24:4",
"scope": 245,
"src": "259:24:6",
"stateVariable": false,

@@ -242,6 +242,6 @@ "storageLocation": "default",

"typeName": {
"id": 178,
"id": 239,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "259:6:4",
"src": "259:6:6",
"typeDescriptions": {

@@ -255,6 +255,6 @@ "typeIdentifier": "t_bytes4",

],
"src": "258:26:4"
"src": "258:26:6"
},
"returnParameters": {
"id": 183,
"id": 244,
"nodeType": "ParameterList",

@@ -264,3 +264,3 @@ "parameters": [

"constant": false,
"id": 182,
"id": 243,
"mutability": "mutable",

@@ -270,4 +270,4 @@ "name": "",

"nodeType": "VariableDeclaration",
"scope": 184,
"src": "308:7:4",
"scope": 245,
"src": "308:7:6",
"stateVariable": false,

@@ -280,6 +280,6 @@ "storageLocation": "default",

"typeName": {
"id": 181,
"id": 242,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "308:7:4",
"src": "308:7:6",
"stateMutability": "nonpayable",

@@ -294,5 +294,5 @@ "typeDescriptions": {

],
"src": "307:9:4"
"src": "307:9:6"
},
"scope": 185,
"scope": 246,
"stateMutability": "view",

@@ -310,7 +310,7 @@ "virtual": false,

"linearizedBaseContracts": [
185
246
],
"name": "IRouter",
"nameLocation": "141:7:4",
"scope": 186,
"nameLocation": "141:7:6",
"scope": 247,
"usedErrors": []

@@ -321,3 +321,3 @@ }

},
"id": 4
"id": 6
}

@@ -27,2 +27,21 @@ {

{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",

@@ -43,5 +62,6 @@ "type": "receive"

"methodIdentifiers": {
"getImplementationForFunction(bytes4)": "ce0b6013"
"getImplementationForFunction(bytes4)": "ce0b6013",
"supportsInterface(bytes4)": "01ffc9a7"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"getImplementationForFunction\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getImplementationForFunction(bytes4)\":{\"details\":\"Unimplemented. Returns the implementation contract address for a given function signature.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Router.sol\":\"Router\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/core/Router.sol\":{\"keccak256\":\"0x412c16745d908099c257701aaf026f71698edf6079bf3745a79a49aa923ef868\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://172951110f727d30e76f90aea4f9ad15c43e0687ac11053d8accc7c652ad9cc4\",\"dweb:/ipfs/QmWhzpMkurrLXceRSVtCtsB9t6kRjCcxV6GPhMT2cXUq4h\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x9b90bc044b22f413a29662dbb81588d09b3717e9db1d6cf25dbe33fc4cd34984\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e97d8550d28278a442a0334438f47ef4643f6696f7b95b1900530fd722761f24\",\"dweb:/ipfs/Qmc87k1SaRo1j6P8pVef9C9P7dS2Bc7YkvWHNYAKhWzvCH\"]}},\"version\":1}",
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_functionSelector\",\"type\":\"bytes4\"}],\"name\":\"getImplementationForFunction\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getImplementationForFunction(bytes4)\":{\"details\":\"Unimplemented. Returns the implementation contract address for a given function signature.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Router.sol\":\"Router\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/core/Router.sol\":{\"keccak256\":\"0xc6fa0d72e94da25687fd3e9ea5e4bee55b12afe880975620ed7dffe286a3e445\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89db213b29029a4263550cfb3884df4a7543cfc6402f9d3fc8453f2b55c71802\",\"dweb:/ipfs/QmcWYQ9CJy25qA3jAf1yDjfVnKYXaPvDX5yWwythC9jzcK\"]},\"src/eip/ERC165.sol\":{\"keccak256\":\"0xca3427246a2713370eed257b0a48aa701f229b140e19a4c93357f4bfe78c0f5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eeccd57e52d33e22b7acbca968af469bd0a474ea549a42d3620c171db73a888\",\"dweb:/ipfs/QmQVsz53hToij9oR6qWHdxUfFo3S2fSLsUXHhxK9HxmFXy\"]},\"src/eip/interface/IERC165.sol\":{\"keccak256\":\"0x4598bd1b9e8ef33c2d3b358f0366f77e489eadfee44275f79f239c99c5b0ad39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://601e7845464981d3fa81e04e4da3ab0a3dbfb12da744da171a62bb8e6500c9f4\",\"dweb:/ipfs/QmYiMEgyH5o1Bopo2TjmADzgrjQdeKVMKcmcCeUmAGnGhP\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x9b90bc044b22f413a29662dbb81588d09b3717e9db1d6cf25dbe33fc4cd34984\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e97d8550d28278a442a0334438f47ef4643f6696f7b95b1900530fd722761f24\",\"dweb:/ipfs/Qmc87k1SaRo1j6P8pVef9C9P7dS2Bc7YkvWHNYAKhWzvCH\"]}},\"version\":1}",
"metadata": {

@@ -79,2 +99,21 @@ "compiler": {

{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],

@@ -90,2 +129,5 @@ "stateMutability": "payable",

"details": "Unimplemented. Returns the implementation contract address for a given function signature."
},
"supportsInterface(bytes4)": {
"details": "See {IERC165-supportsInterface}."
}

@@ -119,9 +161,25 @@ },

"src/core/Router.sol": {
"keccak256": "0x412c16745d908099c257701aaf026f71698edf6079bf3745a79a49aa923ef868",
"keccak256": "0xc6fa0d72e94da25687fd3e9ea5e4bee55b12afe880975620ed7dffe286a3e445",
"urls": [
"bzz-raw://172951110f727d30e76f90aea4f9ad15c43e0687ac11053d8accc7c652ad9cc4",
"dweb:/ipfs/QmWhzpMkurrLXceRSVtCtsB9t6kRjCcxV6GPhMT2cXUq4h"
"bzz-raw://89db213b29029a4263550cfb3884df4a7543cfc6402f9d3fc8453f2b55c71802",
"dweb:/ipfs/QmcWYQ9CJy25qA3jAf1yDjfVnKYXaPvDX5yWwythC9jzcK"
],
"license": "MIT"
},
"src/eip/ERC165.sol": {
"keccak256": "0xca3427246a2713370eed257b0a48aa701f229b140e19a4c93357f4bfe78c0f5b",
"urls": [
"bzz-raw://6eeccd57e52d33e22b7acbca968af469bd0a474ea549a42d3620c171db73a888",
"dweb:/ipfs/QmQVsz53hToij9oR6qWHdxUfFo3S2fSLsUXHhxK9HxmFXy"
],
"license": "MIT"
},
"src/eip/interface/IERC165.sol": {
"keccak256": "0x4598bd1b9e8ef33c2d3b358f0366f77e489eadfee44275f79f239c99c5b0ad39",
"urls": [
"bzz-raw://601e7845464981d3fa81e04e4da3ab0a3dbfb12da744da171a62bb8e6500c9f4",
"dweb:/ipfs/QmYiMEgyH5o1Bopo2TjmADzgrjQdeKVMKcmcCeUmAGnGhP"
],
"license": "MIT"
},
"src/interface/IRouter.sol": {

@@ -140,13 +198,19 @@ "keccak256": "0x9b90bc044b22f413a29662dbb81588d09b3717e9db1d6cf25dbe33fc4cd34984",

"absolutePath": "src/core/Router.sol",
"id": 42,
"id": 67,
"exportedSymbols": {
"ERC165": [
90
],
"IERC165": [
102
],
"IRouter": [
185
246
],
"Router": [
41
66
]
},
"nodeType": "SourceUnit",
"src": "106:1572:0",
"src": "106:1855:0",
"nodes": [

@@ -173,4 +237,4 @@ {

"nameLocation": "-1:-1:-1",
"scope": 42,
"sourceUnit": 186,
"scope": 67,
"sourceUnit": 247,
"symbolAliases": [],

@@ -180,15 +244,28 @@ "unitAlias": ""

{
"id": 41,
"id": 3,
"nodeType": "ImportDirective",
"src": "166:27:0",
"nodes": [],
"absolutePath": "src/eip/ERC165.sol",
"file": "../eip/ERC165.sol",
"nameLocation": "-1:-1:-1",
"scope": 67,
"sourceUnit": 91,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 66,
"nodeType": "ContractDefinition",
"src": "167:1510:0",
"src": "195:1765:0",
"nodes": [
{
"id": 20,
"id": 23,
"nodeType": "FunctionDefinition",
"src": "210:246:0",
"src": "246:246:0",
"nodes": [],
"body": {
"id": 19,
"id": 22,
"nodeType": "Block",
"src": "246:210:0",
"src": "282:210:0",
"nodes": [],

@@ -198,3 +275,3 @@ "statements": [

"assignments": [
9
12
],

@@ -204,9 +281,9 @@ "declarations": [

"constant": false,
"id": 9,
"id": 12,
"mutability": "mutable",
"name": "implementation",
"nameLocation": "360:14:0",
"nameLocation": "396:14:0",
"nodeType": "VariableDeclaration",
"scope": 19,
"src": "352:22:0",
"scope": 22,
"src": "388:22:0",
"stateVariable": false,

@@ -219,6 +296,6 @@ "storageLocation": "default",

"typeName": {
"id": 8,
"id": 11,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "352:7:0",
"src": "388:7:0",
"stateMutability": "nonpayable",

@@ -234,3 +311,3 @@ "typeDescriptions": {

"documentation": "@dev delegate calls the appropriate implementation smart contract for a given function.",
"id": 14,
"id": 17,
"initialValue": {

@@ -240,3 +317,3 @@ "arguments": [

"expression": {
"id": 11,
"id": 14,
"name": "msg",

@@ -246,3 +323,3 @@ "nodeType": "Identifier",

"referencedDeclaration": -15,
"src": "406:3:0",
"src": "442:3:0",
"typeDescriptions": {

@@ -253,3 +330,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 12,
"id": 15,
"isConstant": false,

@@ -259,6 +336,6 @@ "isLValue": false,

"lValueRequested": false,
"memberLocation": "410:3:0",
"memberLocation": "446:3:0",
"memberName": "sig",
"nodeType": "MemberAccess",
"src": "406:7:0",
"src": "442:7:0",
"typeDescriptions": {

@@ -277,8 +354,8 @@ "typeIdentifier": "t_bytes4",

],
"id": 10,
"id": 13,
"name": "getImplementationForFunction",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 40,
"src": "377:28:0",
"referencedDeclaration": 65,
"src": "413:28:0",
"typeDescriptions": {

@@ -289,3 +366,3 @@ "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_address_$",

},
"id": 13,
"id": 16,
"isConstant": false,

@@ -299,3 +376,3 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "377:37:0",
"src": "413:37:0",
"tryCall": false,

@@ -308,3 +385,3 @@ "typeDescriptions": {

"nodeType": "VariableDeclarationStatement",
"src": "352:62:0"
"src": "388:62:0"
},

@@ -315,8 +392,8 @@ {

{
"id": 16,
"id": 19,
"name": "implementation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9,
"src": "434:14:0",
"referencedDeclaration": 12,
"src": "470:14:0",
"typeDescriptions": {

@@ -335,8 +412,8 @@ "typeIdentifier": "t_address",

],
"id": 15,
"id": 18,
"name": "_delegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "424:9:0",
"referencedDeclaration": 57,
"src": "460:9:0",
"typeDescriptions": {

@@ -347,3 +424,3 @@ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",

},
"id": 17,
"id": 20,
"isConstant": false,

@@ -357,3 +434,3 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "424:25:0",
"src": "460:25:0",
"tryCall": false,

@@ -365,5 +442,5 @@ "typeDescriptions": {

},
"id": 18,
"id": 21,
"nodeType": "ExpressionStatement",
"src": "424:25:0"
"src": "460:25:0"
}

@@ -373,3 +450,3 @@ ]

"baseFunctions": [
174
235
],

@@ -382,14 +459,14 @@ "implemented": true,

"parameters": {
"id": 5,
"id": 8,
"nodeType": "ParameterList",
"parameters": [],
"src": "218:2:0"
"src": "254:2:0"
},
"returnParameters": {
"id": 6,
"id": 9,
"nodeType": "ParameterList",
"parameters": [],
"src": "246:0:0"
"src": "282:0:0"
},
"scope": 41,
"scope": 66,
"stateMutability": "payable",

@@ -400,10 +477,10 @@ "virtual": true,

{
"id": 24,
"id": 27,
"nodeType": "FunctionDefinition",
"src": "462:37:0",
"src": "498:37:0",
"nodes": [],
"body": {
"id": 23,
"id": 26,
"nodeType": "Block",
"src": "497:2:0",
"src": "533:2:0",
"nodes": [],

@@ -413,3 +490,3 @@ "statements": []

"baseFunctions": [
177
238
],

@@ -422,14 +499,14 @@ "implemented": true,

"parameters": {
"id": 21,
"id": 24,
"nodeType": "ParameterList",
"parameters": [],
"src": "469:2:0"
"src": "505:2:0"
},
"returnParameters": {
"id": 22,
"id": 25,
"nodeType": "ParameterList",
"parameters": [],
"src": "497:0:0"
"src": "533:0:0"
},
"scope": 41,
"scope": 66,
"stateMutability": "payable",

@@ -440,10 +517,300 @@ "virtual": true,

{
"id": 32,
"id": 49,
"nodeType": "FunctionDefinition",
"src": "568:895:0",
"src": "587:195:0",
"nodes": [],
"body": {
"id": 48,
"nodeType": "Block",
"src": "678:104:0",
"nodes": [],
"statements": [
{
"expression": {
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"id": 46,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 36,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "695:11:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 38,
"name": "IRouter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 246,
"src": "715:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IRouter_$246_$",
"typeString": "type(contract IRouter)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_type$_t_contract$_IRouter_$246_$",
"typeString": "type(contract IRouter)"
}
],
"id": 37,
"name": "type",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -27,
"src": "710:4:0",
"typeDescriptions": {
"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 39,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "710:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_magic_meta_type_t_contract$_IRouter_$246",
"typeString": "type(contract IRouter)"
}
},
"id": 40,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "724:11:0",
"memberName": "interfaceId",
"nodeType": "MemberAccess",
"src": "710:25:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"src": "695:40:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"arguments": [
{
"id": 44,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "763:11:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"id": 42,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -25,
"src": "739:5:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_super$_Router_$66_$",
"typeString": "type(contract super Router)"
}
},
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "745:17:0",
"memberName": "supportsInterface",
"nodeType": "MemberAccess",
"referencedDeclaration": 89,
"src": "739:23:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
"typeString": "function (bytes4) view returns (bool)"
}
},
"id": 45,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "739:36:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "695:80:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 35,
"id": 47,
"nodeType": "Return",
"src": "688:87:0"
}
]
},
"baseFunctions": [
89
],
"documentation": {
"id": 28,
"nodeType": "StructuredDocumentation",
"src": "541:41:0",
"text": "@dev See {IERC165-supportsInterface}."
},
"functionSelector": "01ffc9a7",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "596:17:0",
"overrides": {
"id": 32,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "654:8:0"
},
"parameters": {
"id": 31,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 30,
"mutability": "mutable",
"name": "interfaceId",
"nameLocation": "621:11:0",
"nodeType": "VariableDeclaration",
"scope": 49,
"src": "614:18:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 29,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "614:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "613:20:0"
},
"returnParameters": {
"id": 35,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 34,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 49,
"src": "672:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 33,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "672:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "671:6:0"
},
"scope": 66,
"stateMutability": "view",
"virtual": true,
"visibility": "public"
},
{
"id": 57,
"nodeType": "FunctionDefinition",
"src": "851:895:0",
"nodes": [],
"body": {
"id": 56,
"nodeType": "Block",
"src": "628:835:0",
"src": "911:835:0",
"nodes": [],

@@ -454,3 +821,3 @@ "statements": [

"nodeType": "YulBlock",
"src": "647:810:0",
"src": "930:810:0",
"statements": [

@@ -463,3 +830,3 @@ {

"nodeType": "YulLiteral",
"src": "900:1:0",
"src": "1183:1:0",
"type": "",

@@ -471,3 +838,3 @@ "value": "0"

"nodeType": "YulLiteral",
"src": "903:1:0",
"src": "1186:1:0",
"type": "",

@@ -481,6 +848,6 @@ "value": "0"

"nodeType": "YulIdentifier",
"src": "906:12:0"
"src": "1189:12:0"
},
"nodeType": "YulFunctionCall",
"src": "906:14:0"
"src": "1189:14:0"
}

@@ -491,13 +858,13 @@ ],

"nodeType": "YulIdentifier",
"src": "887:12:0"
"src": "1170:12:0"
},
"nodeType": "YulFunctionCall",
"src": "887:34:0"
"src": "1170:34:0"
},
"nodeType": "YulExpressionStatement",
"src": "887:34:0"
"src": "1170:34:0"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1048:74:0",
"src": "1331:74:0",
"value": {

@@ -510,6 +877,6 @@ "arguments": [

"nodeType": "YulIdentifier",
"src": "1075:3:0"
"src": "1358:3:0"
},
"nodeType": "YulFunctionCall",
"src": "1075:5:0"
"src": "1358:5:0"
},

@@ -519,3 +886,3 @@ {

"nodeType": "YulIdentifier",
"src": "1082:14:0"
"src": "1365:14:0"
},

@@ -525,3 +892,3 @@ {

"nodeType": "YulLiteral",
"src": "1098:1:0",
"src": "1381:1:0",
"type": "",

@@ -535,6 +902,6 @@ "value": "0"

"nodeType": "YulIdentifier",
"src": "1101:12:0"
"src": "1384:12:0"
},
"nodeType": "YulFunctionCall",
"src": "1101:14:0"
"src": "1384:14:0"
},

@@ -544,3 +911,3 @@ {

"nodeType": "YulLiteral",
"src": "1117:1:0",
"src": "1400:1:0",
"type": "",

@@ -552,3 +919,3 @@ "value": "0"

"nodeType": "YulLiteral",
"src": "1120:1:0",
"src": "1403:1:0",
"type": "",

@@ -561,6 +928,6 @@ "value": "0"

"nodeType": "YulIdentifier",
"src": "1062:12:0"
"src": "1345:12:0"
},
"nodeType": "YulFunctionCall",
"src": "1062:60:0"
"src": "1345:60:0"
},

@@ -571,3 +938,3 @@ "variables": [

"nodeType": "YulTypedName",
"src": "1052:6:0",
"src": "1335:6:0",
"type": ""

@@ -583,3 +950,3 @@ }

"nodeType": "YulLiteral",
"src": "1190:1:0",
"src": "1473:1:0",
"type": "",

@@ -591,3 +958,3 @@ "value": "0"

"nodeType": "YulLiteral",
"src": "1193:1:0",
"src": "1476:1:0",
"type": "",

@@ -601,6 +968,6 @@ "value": "0"

"nodeType": "YulIdentifier",
"src": "1196:14:0"
"src": "1479:14:0"
},
"nodeType": "YulFunctionCall",
"src": "1196:16:0"
"src": "1479:16:0"
}

@@ -611,9 +978,9 @@ ],

"nodeType": "YulIdentifier",
"src": "1175:14:0"
"src": "1458:14:0"
},
"nodeType": "YulFunctionCall",
"src": "1175:38:0"
"src": "1458:38:0"
},
"nodeType": "YulExpressionStatement",
"src": "1175:38:0"
"src": "1458:38:0"
},

@@ -625,3 +992,3 @@ {

"nodeType": "YulBlock",
"src": "1308:59:0",
"src": "1591:59:0",
"statements": [

@@ -634,3 +1001,3 @@ {

"nodeType": "YulLiteral",
"src": "1333:1:0",
"src": "1616:1:0",
"type": "",

@@ -644,6 +1011,6 @@ "value": "0"

"nodeType": "YulIdentifier",
"src": "1336:14:0"
"src": "1619:14:0"
},
"nodeType": "YulFunctionCall",
"src": "1336:16:0"
"src": "1619:16:0"
}

@@ -654,9 +1021,9 @@ ],

"nodeType": "YulIdentifier",
"src": "1326:6:0"
"src": "1609:6:0"
},
"nodeType": "YulFunctionCall",
"src": "1326:27:0"
"src": "1609:27:0"
},
"nodeType": "YulExpressionStatement",
"src": "1326:27:0"
"src": "1609:27:0"
}

@@ -666,7 +1033,7 @@ ]

"nodeType": "YulCase",
"src": "1301:66:0",
"src": "1584:66:0",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1306:1:0",
"src": "1589:1:0",
"type": "",

@@ -679,3 +1046,3 @@ "value": "0"

"nodeType": "YulBlock",
"src": "1388:59:0",
"src": "1671:59:0",
"statements": [

@@ -688,3 +1055,3 @@ {

"nodeType": "YulLiteral",
"src": "1413:1:0",
"src": "1696:1:0",
"type": "",

@@ -698,6 +1065,6 @@ "value": "0"

"nodeType": "YulIdentifier",
"src": "1416:14:0"
"src": "1699:14:0"
},
"nodeType": "YulFunctionCall",
"src": "1416:16:0"
"src": "1699:16:0"
}

@@ -708,9 +1075,9 @@ ],

"nodeType": "YulIdentifier",
"src": "1406:6:0"
"src": "1689:6:0"
},
"nodeType": "YulFunctionCall",
"src": "1406:27:0"
"src": "1689:27:0"
},
"nodeType": "YulExpressionStatement",
"src": "1406:27:0"
"src": "1689:27:0"
}

@@ -720,3 +1087,3 @@ ]

"nodeType": "YulCase",
"src": "1380:67:0",
"src": "1663:67:0",
"value": "default"

@@ -728,6 +1095,6 @@ }

"nodeType": "YulIdentifier",
"src": "1234:6:0"
"src": "1517:6:0"
},
"nodeType": "YulSwitch",
"src": "1227:220:0"
"src": "1510:220:0"
}

@@ -739,12 +1106,12 @@ ]

{
"declaration": 27,
"declaration": 52,
"isOffset": false,
"isSlot": false,
"src": "1082:14:0",
"src": "1365:14:0",
"valueSize": 1
}
],
"id": 30,
"id": 55,
"nodeType": "InlineAssembly",
"src": "638:819:0"
"src": "921:819:0"
}

@@ -754,5 +1121,5 @@ ]

"documentation": {
"id": 25,
"id": 50,
"nodeType": "StructuredDocumentation",
"src": "505:58:0",
"src": "788:58:0",
"text": "@dev delegateCalls an `implementation` smart contract."

@@ -764,5 +1131,5 @@ },

"name": "_delegate",
"nameLocation": "577:9:0",
"nameLocation": "860:9:0",
"parameters": {
"id": 28,
"id": 53,
"nodeType": "ParameterList",

@@ -772,9 +1139,9 @@ "parameters": [

"constant": false,
"id": 27,
"id": 52,
"mutability": "mutable",
"name": "implementation",
"nameLocation": "595:14:0",
"nameLocation": "878:14:0",
"nodeType": "VariableDeclaration",
"scope": 32,
"src": "587:22:0",
"scope": 57,
"src": "870:22:0",
"stateVariable": false,

@@ -787,6 +1154,6 @@ "storageLocation": "default",

"typeName": {
"id": 26,
"id": 51,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "587:7:0",
"src": "870:7:0",
"stateMutability": "nonpayable",

@@ -801,11 +1168,11 @@ "typeDescriptions": {

],
"src": "586:24:0"
"src": "869:24:0"
},
"returnParameters": {
"id": 29,
"id": 54,
"nodeType": "ParameterList",
"parameters": [],
"src": "628:0:0"
"src": "911:0:0"
},
"scope": 41,
"scope": 66,
"stateMutability": "nonpayable",

@@ -816,13 +1183,13 @@ "virtual": true,

{
"id": 40,
"id": 65,
"nodeType": "FunctionDefinition",
"src": "1573:102:0",
"src": "1856:102:0",
"nodes": [],
"baseFunctions": [
184
245
],
"documentation": {
"id": 33,
"id": 58,
"nodeType": "StructuredDocumentation",
"src": "1469:99:0",
"src": "1752:99:0",
"text": "@dev Unimplemented. Returns the implementation contract address for a given function signature."

@@ -835,5 +1202,5 @@ },

"name": "getImplementationForFunction",
"nameLocation": "1582:28:0",
"nameLocation": "1865:28:0",
"parameters": {
"id": 36,
"id": 61,
"nodeType": "ParameterList",

@@ -843,9 +1210,9 @@ "parameters": [

"constant": false,
"id": 35,
"id": 60,
"mutability": "mutable",
"name": "_functionSelector",
"nameLocation": "1618:17:0",
"nameLocation": "1901:17:0",
"nodeType": "VariableDeclaration",
"scope": 40,
"src": "1611:24:0",
"scope": 65,
"src": "1894:24:0",
"stateVariable": false,

@@ -858,6 +1225,6 @@ "storageLocation": "default",

"typeName": {
"id": 34,
"id": 59,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1611:6:0",
"src": "1894:6:0",
"typeDescriptions": {

@@ -871,6 +1238,6 @@ "typeIdentifier": "t_bytes4",

],
"src": "1610:26:0"
"src": "1893:26:0"
},
"returnParameters": {
"id": 39,
"id": 64,
"nodeType": "ParameterList",

@@ -880,3 +1247,3 @@ "parameters": [

"constant": false,
"id": 38,
"id": 63,
"mutability": "mutable",

@@ -886,4 +1253,4 @@ "name": "",

"nodeType": "VariableDeclaration",
"scope": 40,
"src": "1666:7:0",
"scope": 65,
"src": "1949:7:0",
"stateVariable": false,

@@ -896,6 +1263,6 @@ "storageLocation": "default",

"typeName": {
"id": 37,
"id": 62,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1666:7:0",
"src": "1949:7:0",
"stateMutability": "nonpayable",

@@ -910,5 +1277,5 @@ "typeDescriptions": {

],
"src": "1665:9:0"
"src": "1948:9:0"
},
"scope": 41,
"scope": 66,
"stateMutability": "view",

@@ -923,14 +1290,29 @@ "virtual": true,

"baseName": {
"id": 3,
"id": 4,
"name": "IRouter",
"nameLocations": [
"195:7:0"
"223:7:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 185,
"src": "195:7:0"
"referencedDeclaration": 246,
"src": "223:7:0"
},
"id": 4,
"id": 5,
"nodeType": "InheritanceSpecifier",
"src": "195:7:0"
"src": "223:7:0"
},
{
"baseName": {
"id": 6,
"name": "ERC165",
"nameLocations": [
"232:6:0"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 90,
"src": "232:6:0"
},
"id": 7,
"nodeType": "InheritanceSpecifier",
"src": "232:6:0"
}

@@ -943,8 +1325,10 @@ ],

"linearizedBaseContracts": [
41,
185
66,
90,
102,
246
],
"name": "Router",
"nameLocation": "185:6:0",
"scope": 42,
"nameLocation": "213:6:0",
"scope": 67,
"usedErrors": []

@@ -951,0 +1335,0 @@ }

{
"name": "@thirdweb-dev/dynamic-contracts",
"description": "Architectural pattern for writing dynamic smart contracts in Solidity",
"version": "1.0.1",
"version": "1.0.2",
"main": "index.js",

@@ -6,0 +6,0 @@ "repository": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc