{
  "abi": [
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MultipleCallbackModule_InvalidParameters",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MultipleCallbackModule_TargetHasNoCode",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_target",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "Callback",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "RequestFinalized",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "targets",
              "type": "address[]"
            },
            {
              "internalType": "bytes[]",
              "name": "data",
              "type": "bytes[]"
            }
          ],
          "internalType": "struct IMultipleCallbacksModule.RequestParameters",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "finalizeRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "moduleName",
      "outputs": [
        {
          "internalType": "string",
          "name": "_moduleName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "requestData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_requestData",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "setupRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "decodeRequestData(bytes32)": "4d610a46",
    "finalizeRequest(bytes32,address)": "309de607",
    "moduleName()": "93f0899a",
    "oracle()": "7dc0d1d0",
    "requestData(bytes32)": "3661346b",
    "setupRequest(bytes32,bytes)": "2e76be2a"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultipleCallbackModule_InvalidParameters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MultipleCallbackModule_TargetHasNoCode\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"Callback\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"targets\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"internalType\":\"struct IMultipleCallbacksModule.RequestParameters\",\"name\":\"_params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"finalizeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_moduleName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"requestData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"_requestData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"setupRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Callback(bytes32,address,bytes)\":{\"params\":{\"_data\":\"The calldata forwarded to the _target\",\"_requestId\":\"The id of the request being finalized\",\"_target\":\"The target address for the callback\"}},\"RequestFinalized(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request that was finalized\"}}},\"kind\":\"dev\",\"methods\":{\"decodeRequestData(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_params\":\"The struct containing the parameters for the request\"}},\"finalizeRequest(bytes32,address)\":{\"details\":\"The success of the callback calls is purposely not checked\",\"params\":{\"_requestId\":\"The id of the request\"}},\"moduleName()\":{\"returns\":{\"_moduleName\":\"The name of the module.\"}},\"oracle()\":{\"returns\":{\"_oracle\":\"The address of the oracle\"}},\"requestData(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_requestData\":\"The data of the request\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}}},\"title\":\"MultipleCallbackModule\",\"version\":1},\"userdoc\":{\"errors\":{\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}],\"MultipleCallbackModule_InvalidParameters()\":[{\"notice\":\"Thrown when the targets array and the data array have different lengths\"}],\"MultipleCallbackModule_TargetHasNoCode()\":[{\"notice\":\"Thrown when then target address has no code (i.e. is not a contract)\"}]},\"events\":{\"Callback(bytes32,address,bytes)\":{\"notice\":\"A callback has been executed\"},\"RequestFinalized(bytes32,address)\":{\"notice\":\"Emitted when a request is finalized\"}},\"kind\":\"user\",\"methods\":{\"decodeRequestData(bytes32)\":{\"notice\":\"Returns the decoded data for a request\"},\"finalizeRequest(bytes32,address)\":{\"notice\":\"Finalizes the request by executing the callback calls on the targets\"},\"moduleName()\":{\"notice\":\"Returns the name of the module.\"},\"oracle()\":{\"notice\":\"Returns the address of the oracle\"},\"requestData(bytes32)\":{\"notice\":\"Returns the data of the request associated with the provided id\"},\"setupRequest(bytes32,bytes)\":{\"notice\":\"Stores the request data and runs module-specific hooks\"}},\"notice\":\"Module allowing users to make multiple calls to different contracts as a result of a request being finalized.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/interfaces/modules/finality/IMultipleCallbacksModule.sol\":\"IMultipleCallbacksModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@defi-wonderland/=node_modules/@defi-wonderland/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol\":{\"keccak256\":\"0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f\",\"dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol\":{\"keccak256\":\"0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e\",\"dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8\"]},\"solidity/interfaces/modules/finality/IMultipleCallbacksModule.sol\":{\"keccak256\":\"0x9e572d32eb502074387b24c91b3a391e03acb166a2a9039216779cb73a6e3204\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://880dd7f946461bbcd698e32b745a1d6a331903fc05946f76b94f7c6372869b28\",\"dweb:/ipfs/Qmet9JDPakWMGeVfrh5AhDe7eJCVus2tM7aqHzq3uk7r7v\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [],
          "type": "error",
          "name": "Module_OnlyOracle"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "MultipleCallbackModule_InvalidParameters"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "MultipleCallbackModule_TargetHasNoCode"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_target",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes",
              "name": "_data",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Callback",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "struct IMultipleCallbacksModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "address[]",
                  "name": "targets",
                  "type": "address[]"
                },
                {
                  "internalType": "bytes[]",
                  "name": "data",
                  "type": "bytes[]"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "moduleName",
          "outputs": [
            {
              "internalType": "string",
              "name": "_moduleName",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "oracle",
          "outputs": [
            {
              "internalType": "address",
              "name": "_oracle",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "requestData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "_requestData",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "_data",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setupRequest"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "decodeRequestData(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_params": "The struct containing the parameters for the request"
            }
          },
          "finalizeRequest(bytes32,address)": {
            "details": "The success of the callback calls is purposely not checked",
            "params": {
              "_requestId": "The id of the request"
            }
          },
          "moduleName()": {
            "returns": {
              "_moduleName": "The name of the module."
            }
          },
          "oracle()": {
            "returns": {
              "_oracle": "The address of the oracle"
            }
          },
          "requestData(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_requestData": "The data of the request"
            }
          },
          "setupRequest(bytes32,bytes)": {
            "params": {
              "_data": "The data of the request",
              "_requestId": "The ID of the request"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "decodeRequestData(bytes32)": {
            "notice": "Returns the decoded data for a request"
          },
          "finalizeRequest(bytes32,address)": {
            "notice": "Finalizes the request by executing the callback calls on the targets"
          },
          "moduleName()": {
            "notice": "Returns the name of the module."
          },
          "oracle()": {
            "notice": "Returns the address of the oracle"
          },
          "requestData(bytes32)": {
            "notice": "Returns the data of the request associated with the provided id"
          },
          "setupRequest(bytes32,bytes)": {
            "notice": "Stores the request data and runs module-specific hooks"
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@defi-wonderland/=node_modules/@defi-wonderland/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "ds-test/=node_modules/ds-test/src/",
        "forge-std/=node_modules/forge-std/src/",
        "solmate/=node_modules/solmate/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 10000
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "solidity/interfaces/modules/finality/IMultipleCallbacksModule.sol": "IMultipleCallbacksModule"
      },
      "libraries": {}
    },
    "sources": {
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol": {
        "keccak256": "0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05",
        "urls": [
          "bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f",
          "dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol": {
        "keccak256": "0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e",
        "urls": [
          "bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e",
          "dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/modules/finality/IMultipleCallbacksModule.sol": {
        "keccak256": "0x9e572d32eb502074387b24c91b3a391e03acb166a2a9039216779cb73a6e3204",
        "urls": [
          "bzz-raw://880dd7f946461bbcd698e32b745a1d6a331903fc05946f76b94f7c6372869b28",
          "dweb:/ipfs/Qmet9JDPakWMGeVfrh5AhDe7eJCVus2tM7aqHzq3uk7r7v"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/interfaces/modules/finality/IMultipleCallbacksModule.sol",
    "id": 43292,
    "exportedSymbols": {
      "IFinalityModule": [
        2353
      ],
      "IMultipleCallbacksModule": [
        43291
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:2508:67",
    "nodes": [
      {
        "id": 43246,
        "nodeType": "PragmaDirective",
        "src": "32:24:67",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 43248,
        "nodeType": "ImportDirective",
        "src": "58:131:67",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43292,
        "sourceUnit": 2354,
        "symbolAliases": [
          {
            "foreign": {
              "id": 43247,
              "name": "IFinalityModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2353,
              "src": "66:15:67",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 43291,
        "nodeType": "ContractDefinition",
        "src": "356:2183:67",
        "nodes": [
          {
            "id": 43260,
            "nodeType": "EventDefinition",
            "src": "814:81:67",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 43252,
              "nodeType": "StructuredDocumentation",
              "src": "587:224:67",
              "text": " @notice A callback has been executed\n @param _requestId The id of the request being finalized\n @param _target The target address for the callback\n @param _data The calldata forwarded to the _target"
            },
            "eventSelector": "d131974f482f422f20ac02414f7a54690924a59b94bf4d3e90ff57a042c708ed",
            "name": "Callback",
            "nameLocation": "820:8:67",
            "parameters": {
              "id": 43259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43254,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "845:10:67",
                  "nodeType": "VariableDeclaration",
                  "scope": 43260,
                  "src": "829:26:67",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43253,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "829:7:67",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43256,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_target",
                  "nameLocation": "873:7:67",
                  "nodeType": "VariableDeclaration",
                  "scope": 43260,
                  "src": "857:23:67",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 43255,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "857:7:67",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43258,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "888:5:67",
                  "nodeType": "VariableDeclaration",
                  "scope": 43260,
                  "src": "882:11:67",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 43257,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "882:5:67",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "828:66:67"
            }
          },
          {
            "id": 43263,
            "nodeType": "ErrorDefinition",
            "src": "1166:47:67",
            "nodes": [],
            "documentation": {
              "id": 43261,
              "nodeType": "StructuredDocumentation",
              "src": "1072:91:67",
              "text": " @notice Thrown when then target address has no code (i.e. is not a contract)"
            },
            "errorSelector": "6fc72c2c",
            "name": "MultipleCallbackModule_TargetHasNoCode",
            "nameLocation": "1172:38:67",
            "parameters": {
              "id": 43262,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1210:2:67"
            }
          },
          {
            "id": 43266,
            "nodeType": "ErrorDefinition",
            "src": "1314:49:67",
            "nodes": [],
            "documentation": {
              "id": 43264,
              "nodeType": "StructuredDocumentation",
              "src": "1217:94:67",
              "text": " @notice Thrown when the targets array and the data array have different lengths"
            },
            "errorSelector": "2ceb1b9b",
            "name": "MultipleCallbackModule_InvalidParameters",
            "nameLocation": "1320:40:67",
            "parameters": {
              "id": 43265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1360:2:67"
            }
          },
          {
            "id": 43273,
            "nodeType": "StructDefinition",
            "src": "1729:71:67",
            "nodes": [],
            "canonicalName": "IMultipleCallbacksModule.RequestParameters",
            "members": [
              {
                "constant": false,
                "id": 43269,
                "mutability": "mutable",
                "name": "targets",
                "nameLocation": "1770:7:67",
                "nodeType": "VariableDeclaration",
                "scope": 43273,
                "src": "1760:17:67",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                  "typeString": "address[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 43267,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1760:7:67",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 43268,
                  "nodeType": "ArrayTypeName",
                  "src": "1760:9:67",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                    "typeString": "address[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 43272,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "1791:4:67",
                "nodeType": "VariableDeclaration",
                "scope": 43273,
                "src": "1783:12:67",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                  "typeString": "bytes[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 43270,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1783:5:67",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "id": 43271,
                  "nodeType": "ArrayTypeName",
                  "src": "1783:7:67",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                    "typeString": "bytes[]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RequestParameters",
            "nameLocation": "1736:17:67",
            "scope": 43291,
            "visibility": "public"
          },
          {
            "id": 43282,
            "nodeType": "FunctionDefinition",
            "src": "2158:104:67",
            "nodes": [],
            "documentation": {
              "id": 43274,
              "nodeType": "StructuredDocumentation",
              "src": "1975:180:67",
              "text": " @notice Returns the decoded data for a request\n @param _requestId The id of the request\n @return _params The struct containing the parameters for the request"
            },
            "functionSelector": "4d610a46",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "2167:17:67",
            "parameters": {
              "id": 43277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43276,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "2193:10:67",
                  "nodeType": "VariableDeclaration",
                  "scope": 43282,
                  "src": "2185:18:67",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43275,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2185:7:67",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2184:20:67"
            },
            "returnParameters": {
              "id": 43281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43280,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "2253:7:67",
                  "nodeType": "VariableDeclaration",
                  "scope": 43282,
                  "src": "2228:32:67",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$43273_memory_ptr",
                    "typeString": "struct IMultipleCallbacksModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 43279,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43278,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "2228:17:67"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 43273,
                      "src": "2228:17:67"
                    },
                    "referencedDeclaration": 43273,
                    "src": "2228:17:67",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43273_storage_ptr",
                      "typeString": "struct IMultipleCallbacksModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2227:34:67"
            },
            "scope": 43291,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43290,
            "nodeType": "FunctionDefinition",
            "src": "2474:63:67",
            "nodes": [],
            "baseFunctions": [
              1775
            ],
            "documentation": {
              "id": 43283,
              "nodeType": "StructuredDocumentation",
              "src": "2266:205:67",
              "text": " @notice Finalizes the request by executing the callback calls on the targets\n @dev The success of the callback calls is purposely not checked\n @param _requestId The id of the request"
            },
            "functionSelector": "309de607",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "finalizeRequest",
            "nameLocation": "2483:15:67",
            "parameters": {
              "id": 43288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43285,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "2507:10:67",
                  "nodeType": "VariableDeclaration",
                  "scope": 43290,
                  "src": "2499:18:67",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43284,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2499:7:67",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43287,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 43290,
                  "src": "2519:7:67",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 43286,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2519:7:67",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2498:29:67"
            },
            "returnParameters": {
              "id": 43289,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2536:0:67"
            },
            "scope": 43291,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 43250,
              "name": "IFinalityModule",
              "nameLocations": [
                "394:15:67"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2353,
              "src": "394:15:67"
            },
            "id": 43251,
            "nodeType": "InheritanceSpecifier",
            "src": "394:15:67"
          }
        ],
        "canonicalName": "IMultipleCallbacksModule",
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": {
          "id": 43249,
          "nodeType": "StructuredDocumentation",
          "src": "191:164:67",
          "text": " @title MultipleCallbackModule\n @notice Module allowing users to make multiple calls to different contracts\n as a result of a request being finalized."
        },
        "fullyImplemented": false,
        "linearizedBaseContracts": [
          43291,
          2353,
          1782
        ],
        "name": "IMultipleCallbacksModule",
        "nameLocation": "366:24:67",
        "scope": 43292,
        "usedErrors": [
          1745,
          43263,
          43266
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 67
}