{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IOracle",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "RequestFinalized",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ORACLE",
      "outputs": [
        {
          "internalType": "contract IOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "url",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "body",
              "type": "string"
            },
            {
              "internalType": "enum IHttpRequestModule.HttpMethod",
              "name": "method",
              "type": "uint8"
            },
            {
              "internalType": "contract IAccountingExtension",
              "name": "accountingExtension",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "paymentToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "paymentAmount",
              "type": "uint256"
            }
          ],
          "internalType": "struct IHttpRequestModule.RequestParameters",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "finalizeRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "moduleName",
      "outputs": [
        {
          "internalType": "string",
          "name": "_moduleName",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "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": "0x60a060405234801561001057600080fd5b506040516111ab3803806111ab83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516110f76100b46000396000818160d801528181610141015281816101b60152818161024f015281816102d8015281816103a301526107d401526110f76000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806338013f021161005b57806338013f02146100d35780634d610a461461011f5780637dc0d1d01461013f57806393f0899a1461016557600080fd5b80632e76be2a14610082578063309de607146100975780633661346b146100aa575b600080fd5b6100956100903660046108f2565b61019e565b005b6100956100a5366004610993565b610237565b6100bd6100b83660046109c3565b6105fe565b6040516100ca9190610a4a565b60405180910390f35b6100fa7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ca565b61013261012d3660046109c3565b610698565b6040516100ca9190610a64565b7f00000000000000000000000000000000000000000000000000000000000000006100fa565b60408051808201909152601181527f48747470526571756573744d6f64756c6500000000000000000000000000000060208201526100bd565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461020d576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152602081905260409020610226828483610c2f565b5061023283838361077f565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a6576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffb1e61ca000000000000000000000000000000000000000000000000000000008152600481018390526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063fb1e61ca9060240161014060405180830381865afa158015610335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103599190610dca565b6040517f163ed02f0000000000000000000000000000000000000000000000000000000081526004810185905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063163ed02f90602401600060405180830381865afa1580156103ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104309190810190610f0a565b9050600061043d85610698565b82519091501561050257606081015160c08401516020840151608084015160a08501516040517fcab0e418000000000000000000000000000000000000000000000000000000008152600481018b905273ffffffffffffffffffffffffffffffffffffffff948516602482015292841660448401529083166064830152608482015291169063cab0e4189060a401600060405180830381600087803b1580156104e557600080fd5b505af11580156104f9573d6000803e3d6000fd5b505050506105ac565b606081015160c0840151608083015160a08401516040517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018a90529183166044830152606482015291169063a6d09dc890608401600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050505b60405173ffffffffffffffffffffffffffffffffffffffff8516815285907f898b6025fbfa120421d24d3735eb8c51885040c2ba00c10ffe007e3356f058ff9060200160405180910390a25050505050565b6000602081905290815260409020805461061790610b8e565b80601f016020809104026020016040519081016040528092919081815260200182805461064390610b8e565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b505050505081565b6106cf6040805160c08101825260608082526020820152908101600081526000602082018190526040820181905260609091015290565b600082815260208190526040902080546106e890610b8e565b80601f016020809104026020016040519081016040528092919081815260200182805461071490610b8e565b80156107615780601f1061073657610100808354040283529160200191610761565b820191906000526020600020905b81548152906001019060200180831161074457829003601f168201915b50505050508060200190518101906107799190610ff0565b92915050565b600061078a84610698565b6040517ffb1e61ca0000000000000000000000000000000000000000000000000000000081526004810186905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fb1e61ca9060240161014060405180830381865afa15801561081c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108409190610dca565b606083015160c0820151608085015160a08601516040517fbba9f26f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018b905291831660448301526064820152929350169063bba9f26f90608401600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b505050505050505050565b60008060006040848603121561090757600080fd5b83359250602084013567ffffffffffffffff8082111561092657600080fd5b818601915086601f83011261093a57600080fd5b81358181111561094957600080fd5b87602082850101111561095b57600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff8116811461099057600080fd5b50565b600080604083850312156109a657600080fd5b8235915060208301356109b88161096e565b809150509250929050565b6000602082840312156109d557600080fd5b5035919050565b60005b838110156109f75781810151838201526020016109df565b50506000910152565b60008151808452610a188160208601602086016109dc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a5d6020830184610a00565b9392505050565b602081526000825160c06020840152610a8060e0840182610a00565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848303016040850152610abb8282610a00565b915050604084015160028110610afa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b806060850152506060840151610b28608085018273ffffffffffffffffffffffffffffffffffffffff169052565b50608084015173ffffffffffffffffffffffffffffffffffffffff811660a08501525060a084015160c08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c90821680610ba257607f821691505b602082108103610bdb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561023257600081815260208120601f850160051c81016020861015610c085750805b601f850160051c820191505b81811015610c2757828155600101610c14565b505050505050565b67ffffffffffffffff831115610c4757610c47610b5f565b610c5b83610c558354610b8e565b83610be1565b6000601f841160018114610cad5760008515610c775750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610d43565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015610cfc5786850135825560209485019460019092019101610cdc565b5086821015610d37577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b604051610140810167ffffffffffffffff81118282101715610d6e57610d6e610b5f565b60405290565b60405160a0810167ffffffffffffffff81118282101715610d6e57610d6e610b5f565b60405160c0810167ffffffffffffffff81118282101715610d6e57610d6e610b5f565b8051610dc58161096e565b919050565b60006101408284031215610ddd57600080fd5b610de5610d4a565b82518152610df560208401610dba565b6020820152610e0660408401610dba565b6040820152610e1760608401610dba565b6060820152610e2860808401610dba565b6080820152610e3960a08401610dba565b60a0820152610e4a60c08401610dba565b60c082015260e083810151908201526101008084015190820152610120928301519281019290925250919050565b600067ffffffffffffffff80841115610e9357610e93610b5f565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610ed957610ed9610b5f565b81604052809350858152868686011115610ef257600080fd5b610f008660208301876109dc565b5050509392505050565b600060208284031215610f1c57600080fd5b815167ffffffffffffffff80821115610f3457600080fd5b9083019060a08286031215610f4857600080fd5b610f50610d74565b825181526020830151610f628161096e565b806020830152506040830151604082015260608301516060820152608083015182811115610f8f57600080fd5b80840193505085601f840112610fa457600080fd5b610fb386845160208601610e78565b608082015295945050505050565b600082601f830112610fd257600080fd5b610a5d83835160208501610e78565b805160028110610dc557600080fd5b60006020828403121561100257600080fd5b815167ffffffffffffffff8082111561101a57600080fd5b9083019060c0828603121561102e57600080fd5b611036610d97565b82518281111561104557600080fd5b61105187828601610fc1565b82525060208301518281111561106657600080fd5b61107287828601610fc1565b60208301525061108460408401610fe1565b604082015261109560608401610dba565b60608201526110a660808401610dba565b608082015260a083015160a08201528093505050509291505056fea2646970667358221220f5436578107c899fbb3ee41b259968d53ddf68b4ff3e79e6037d109ac5a02a3b64736f6c63430008130033",
    "sourceMap": "401:1926:48:-:0;;;462:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;353:16:0;;;401:1926:48;;14:306:113;100:6;153:2;141:9;132:7;128:23;124:32;121:52;;;169:1;166;159:12;121:52;195:16;;-1:-1:-1;;;;;240:31:113;;230:42;;220:70;;286:1;283;276:12;220:70;309:5;14:306;-1:-1:-1;;;14:306:113:o;:::-;401:1926:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806338013f021161005b57806338013f02146100d35780634d610a461461011f5780637dc0d1d01461013f57806393f0899a1461016557600080fd5b80632e76be2a14610082578063309de607146100975780633661346b146100aa575b600080fd5b6100956100903660046108f2565b61019e565b005b6100956100a5366004610993565b610237565b6100bd6100b83660046109c3565b6105fe565b6040516100ca9190610a4a565b60405180910390f35b6100fa7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ca565b61013261012d3660046109c3565b610698565b6040516100ca9190610a64565b7f00000000000000000000000000000000000000000000000000000000000000006100fa565b60408051808201909152601181527f48747470526571756573744d6f64756c6500000000000000000000000000000060208201526100bd565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461020d576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152602081905260409020610226828483610c2f565b5061023283838361077f565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a6576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffb1e61ca000000000000000000000000000000000000000000000000000000008152600481018390526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063fb1e61ca9060240161014060405180830381865afa158015610335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103599190610dca565b6040517f163ed02f0000000000000000000000000000000000000000000000000000000081526004810185905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063163ed02f90602401600060405180830381865afa1580156103ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104309190810190610f0a565b9050600061043d85610698565b82519091501561050257606081015160c08401516020840151608084015160a08501516040517fcab0e418000000000000000000000000000000000000000000000000000000008152600481018b905273ffffffffffffffffffffffffffffffffffffffff948516602482015292841660448401529083166064830152608482015291169063cab0e4189060a401600060405180830381600087803b1580156104e557600080fd5b505af11580156104f9573d6000803e3d6000fd5b505050506105ac565b606081015160c0840151608083015160a08401516040517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018a90529183166044830152606482015291169063a6d09dc890608401600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050505b60405173ffffffffffffffffffffffffffffffffffffffff8516815285907f898b6025fbfa120421d24d3735eb8c51885040c2ba00c10ffe007e3356f058ff9060200160405180910390a25050505050565b6000602081905290815260409020805461061790610b8e565b80601f016020809104026020016040519081016040528092919081815260200182805461064390610b8e565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b505050505081565b6106cf6040805160c08101825260608082526020820152908101600081526000602082018190526040820181905260609091015290565b600082815260208190526040902080546106e890610b8e565b80601f016020809104026020016040519081016040528092919081815260200182805461071490610b8e565b80156107615780601f1061073657610100808354040283529160200191610761565b820191906000526020600020905b81548152906001019060200180831161074457829003601f168201915b50505050508060200190518101906107799190610ff0565b92915050565b600061078a84610698565b6040517ffb1e61ca0000000000000000000000000000000000000000000000000000000081526004810186905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fb1e61ca9060240161014060405180830381865afa15801561081c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108409190610dca565b606083015160c0820151608085015160a08601516040517fbba9f26f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018b905291831660448301526064820152929350169063bba9f26f90608401600060405180830381600087803b1580156108d357600080fd5b505af11580156108e7573d6000803e3d6000fd5b505050505050505050565b60008060006040848603121561090757600080fd5b83359250602084013567ffffffffffffffff8082111561092657600080fd5b818601915086601f83011261093a57600080fd5b81358181111561094957600080fd5b87602082850101111561095b57600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff8116811461099057600080fd5b50565b600080604083850312156109a657600080fd5b8235915060208301356109b88161096e565b809150509250929050565b6000602082840312156109d557600080fd5b5035919050565b60005b838110156109f75781810151838201526020016109df565b50506000910152565b60008151808452610a188160208601602086016109dc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a5d6020830184610a00565b9392505050565b602081526000825160c06020840152610a8060e0840182610a00565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848303016040850152610abb8282610a00565b915050604084015160028110610afa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b806060850152506060840151610b28608085018273ffffffffffffffffffffffffffffffffffffffff169052565b50608084015173ffffffffffffffffffffffffffffffffffffffff811660a08501525060a084015160c08401528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c90821680610ba257607f821691505b602082108103610bdb577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561023257600081815260208120601f850160051c81016020861015610c085750805b601f850160051c820191505b81811015610c2757828155600101610c14565b505050505050565b67ffffffffffffffff831115610c4757610c47610b5f565b610c5b83610c558354610b8e565b83610be1565b6000601f841160018114610cad5760008515610c775750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610d43565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015610cfc5786850135825560209485019460019092019101610cdc565b5086821015610d37577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b604051610140810167ffffffffffffffff81118282101715610d6e57610d6e610b5f565b60405290565b60405160a0810167ffffffffffffffff81118282101715610d6e57610d6e610b5f565b60405160c0810167ffffffffffffffff81118282101715610d6e57610d6e610b5f565b8051610dc58161096e565b919050565b60006101408284031215610ddd57600080fd5b610de5610d4a565b82518152610df560208401610dba565b6020820152610e0660408401610dba565b6040820152610e1760608401610dba565b6060820152610e2860808401610dba565b6080820152610e3960a08401610dba565b60a0820152610e4a60c08401610dba565b60c082015260e083810151908201526101008084015190820152610120928301519281019290925250919050565b600067ffffffffffffffff80841115610e9357610e93610b5f565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610ed957610ed9610b5f565b81604052809350858152868686011115610ef257600080fd5b610f008660208301876109dc565b5050509392505050565b600060208284031215610f1c57600080fd5b815167ffffffffffffffff80821115610f3457600080fd5b9083019060a08286031215610f4857600080fd5b610f50610d74565b825181526020830151610f628161096e565b806020830152506040830151604082015260608301516060820152608083015182811115610f8f57600080fd5b80840193505085601f840112610fa457600080fd5b610fb386845160208601610e78565b608082015295945050505050565b600082601f830112610fd257600080fd5b610a5d83835160208501610e78565b805160028110610dc557600080fd5b60006020828403121561100257600080fd5b815167ffffffffffffffff8082111561101a57600080fd5b9083019060c0828603121561102e57600080fd5b611036610d97565b82518281111561104557600080fd5b61105187828601610fc1565b82525060208301518281111561106657600080fd5b61107287828601610fc1565b60208301525061108460408401610fe1565b604082015261109560608401610dba565b60608201526110a660808401610dba565b608082015260a083015160a08201528093505050509291505056fea2646970667358221220f5436578107c899fbb3ee41b259968d53ddf68b4ff3e79e6037d109ac5a02a3b64736f6c63430008130033",
    "sourceMap": "401:1926:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:175:0;;;;;;:::i;:::-;;:::i;:::-;;1426:899:48;;;;;;:::i;:::-;;:::i;237:68:0:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;201:31;;;;;;;;2486:42:113;2474:55;;;2456:74;;2444:2;2429:18;201:31:0;2294:242:113;694:179:48;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;571:94:0:-;653:6;571:94;;539:114:48;615:33;;;;;;;;;;;;;;;;;539:114;;695:175:0;472:10;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;791:11:::1;:23:::0;;;::::1;::::0;;;;;;:31:::1;817:5:::0;;791:23;:31:::1;:::i;:::-;;828:37;847:10;859:5;;828:18;:37::i;:::-;695:175:::0;;;:::o;1426:899:48:-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;1600:29:48::1;::::0;;;;::::1;::::0;::::1;7473:25:113::0;;;1566:31:48::1;::::0;1600:6:::1;:17;;::::0;::::1;::::0;7446:18:113;;1600:29:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1671:39;::::0;;;;::::1;::::0;::::1;7473:25:113::0;;;1566:63:48;;-1:-1:-1;1635:33:48::1;::::0;1671:27:::1;:6;:27;::::0;::::1;::::0;7446:18:113;;1671:39:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1635:75;;1716:32;1751:29;1769:10;1751:17;:29::i;:::-;1790:19:::0;;1716:64;;-1:-1:-1;1790:24:48;1786:484:::1;;1824:27;::::0;::::1;::::0;1906:18:::1;::::0;::::1;::::0;1945::::1;::::0;::::1;::::0;1981:20:::1;::::0;::::1;::::0;2020:21:::1;::::0;::::1;::::0;1824:226:::1;::::0;;;;::::1;::::0;::::1;11508:25:113::0;;;1824:31:48::1;11630:15:113::0;;;11610:18;;;11603:43;11682:15;;;11662:18;;;11655:43;11734:15;;;11714:18;;;11707:43;11766:19;;;11759:35;1824:31:48;::::1;::::0;::::1;::::0;11480:19:113;;1824:226:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1786:484;;;2071:27;::::0;::::1;::::0;2126:18:::1;::::0;::::1;::::0;2194:20:::1;::::0;::::1;::::0;2233:21:::1;::::0;::::1;::::0;2071:192:::1;::::0;;;;:35:::1;12130:15:113::0;;;2071:192:48::1;::::0;::::1;12112:34:113::0;12162:18;;;12155:34;;;12225:15;;;12205:18;;;12198:43;12257:18;;;12250:34;2071:35:48;::::1;::::0;::::1;::::0;12023:19:113;;2071:192:48::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1786:484;2280:40;::::0;2486:42:113;2474:55;;2456:74;;2297:10:48;;2280:40:::1;::::0;2444:2:113;2429:18;2280:40:48::1;;;;;;;1560:765;;;1426:899:::0;;:::o;237:68:0:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;694:179:48:-;762:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;762:32:48;823:11;:23;;;;;;;;;;812:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;802:66;694:179;-1:-1:-1;;694:179:48:o;974:411::-;1062:32;1097:29;1115:10;1097:17;:29::i;:::-;1166;;;;;;;;7473:25:113;;;1062:64:48;;-1:-1:-1;1132:31:48;;1166:17;:6;:17;;;;7446:18:113;;1166:29:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1201:27;;;;1251:18;;;;1315:20;;;;1352:21;;;;1201:179;;;;;:32;12130:15:113;;;1201:179:48;;;12112:34:113;12162:18;;;12155:34;;;12225:15;;;12205:18;;;12198:43;12257:18;;;12250:34;1132:63:48;;-1:-1:-1;1201:32:48;;;;12023:19:113;;1201:179:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1056:329;;974:411;;;:::o;14:659:113:-;93:6;101;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;214:9;201:23;191:33;;275:2;264:9;260:18;247:32;298:18;339:2;331:6;328:14;325:34;;;355:1;352;345:12;325:34;393:6;382:9;378:22;368:32;;438:7;431:4;427:2;423:13;419:27;409:55;;460:1;457;450:12;409:55;500:2;487:16;526:2;518:6;515:14;512:34;;;542:1;539;532:12;512:34;587:7;582:2;573:6;569:2;565:15;561:24;558:37;555:57;;;608:1;605;598:12;555:57;639:2;635;631:11;621:21;;661:6;651:16;;;;;14:659;;;;;:::o;678:154::-;764:42;757:5;753:54;746:5;743:65;733:93;;822:1;819;812:12;733:93;678:154;:::o;837:315::-;905:6;913;966:2;954:9;945:7;941:23;937:32;934:52;;;982:1;979;972:12;934:52;1018:9;1005:23;995:33;;1078:2;1067:9;1063:18;1050:32;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1131:15;;;837:315;;;;;:::o;1157:180::-;1216:6;1269:2;1257:9;1248:7;1244:23;1240:32;1237:52;;;1285:1;1282;1275:12;1237:52;-1:-1:-1;1308:23:113;;1157:180;-1:-1:-1;1157:180:113:o;1342:250::-;1427:1;1437:113;1451:6;1448:1;1445:13;1437:113;;;1527:11;;;1521:18;1508:11;;;1501:39;1473:2;1466:10;1437:113;;;-1:-1:-1;;1584:1:113;1566:16;;1559:27;1342:250::o;1597:329::-;1638:3;1676:5;1670:12;1703:6;1698:3;1691:19;1719:76;1788:6;1781:4;1776:3;1772:14;1765:4;1758:5;1754:16;1719:76;:::i;:::-;1840:2;1828:15;1845:66;1824:88;1815:98;;;;1915:4;1811:109;;1597:329;-1:-1:-1;;1597:329:113:o;1931:217::-;2078:2;2067:9;2060:21;2041:4;2098:44;2138:2;2127:9;2123:18;2115:6;2098:44;:::i;:::-;2090:52;1931:217;-1:-1:-1;;;1931:217:113:o;2730:1275::-;2931:2;2920:9;2913:21;2894:4;2969:6;2963:13;3012:4;3007:2;2996:9;2992:18;2985:32;3040:51;3086:3;3075:9;3071:19;3057:12;3040:51;:::i;:::-;3026:65;;3140:2;3132:6;3128:15;3122:22;3208:66;3196:9;3188:6;3184:22;3180:95;3175:2;3164:9;3160:18;3153:123;3299:40;3332:6;3316:14;3299:40;:::i;:::-;3285:54;;;3388:2;3380:6;3376:15;3370:22;3430:1;3414:14;3411:21;3401:209;;3466:77;3463:1;3456:88;3567:4;3564:1;3557:15;3595:4;3592:1;3585:15;3401:209;3646:14;3641:2;3630:9;3626:18;3619:42;;3710:2;3702:6;3698:15;3692:22;3723:64;3782:3;3771:9;3767:19;3751:14;2239:42;2228:54;2216:67;;2153:136;3723:64;-1:-1:-1;3836:3:113;3824:16;;3818:23;2239:42;2228:54;;3909:3;3894:19;;2216:67;3850:64;3970:3;3962:6;3958:16;3952:23;3945:4;3934:9;3930:20;3923:53;3993:6;3985:14;;;2730:1275;;;;:::o;4465:184::-;4517:77;4514:1;4507:88;4614:4;4611:1;4604:15;4638:4;4635:1;4628:15;4654:437;4733:1;4729:12;;;;4776;;;4797:61;;4851:4;4843:6;4839:17;4829:27;;4797:61;4904:2;4896:6;4893:14;4873:18;4870:38;4867:218;;4941:77;4938:1;4931:88;5042:4;5039:1;5032:15;5070:4;5067:1;5060:15;4867:218;;4654:437;;;:::o;5221:544::-;5322:2;5317:3;5314:11;5311:448;;;5358:1;5383:5;5379:2;5372:17;5428:4;5424:2;5414:19;5498:2;5486:10;5482:19;5479:1;5475:27;5469:4;5465:38;5534:4;5522:10;5519:20;5516:47;;;-1:-1:-1;5557:4:113;5516:47;5612:2;5607:3;5603:12;5600:1;5596:20;5590:4;5586:31;5576:41;;5667:82;5685:2;5678:5;5675:13;5667:82;;;5730:17;;;5711:1;5700:13;5667:82;;;5671:3;;;5221:544;;;:::o;6001:1321::-;6123:18;6118:3;6115:27;6112:53;;;6145:18;;:::i;:::-;6174:93;6263:3;6223:38;6255:4;6249:11;6223:38;:::i;:::-;6217:4;6174:93;:::i;:::-;6293:1;6318:2;6313:3;6310:11;6335:1;6330:734;;;;7108:1;7125:3;7122:93;;;-1:-1:-1;7181:19:113;;;7168:33;7122:93;5907:66;5898:1;5894:11;;;5890:84;5886:89;5876:100;5982:1;5978:11;;;5873:117;7228:78;;6303:1013;;6330:734;5168:1;5161:14;;;5205:4;5192:18;;6375:66;6366:76;;;6525:9;6547:229;6561:7;6558:1;6555:14;6547:229;;;6650:19;;;6637:33;6622:49;;6757:4;6742:20;;;;6710:1;6698:14;;;;6577:12;6547:229;;;6551:3;6804;6795:7;6792:16;6789:219;;;6924:66;6918:3;6912;6909:1;6905:11;6901:21;6897:94;6893:99;6880:9;6875:3;6871:19;6858:33;6854:139;6846:6;6839:155;6789:219;;;7051:1;7045:3;7042:1;7038:11;7034:19;7028:4;7021:33;6303:1013;;;6001:1321;;;:::o;7509:252::-;7581:2;7575:9;7623:3;7611:16;;7657:18;7642:34;;7678:22;;;7639:62;7636:88;;;7704:18;;:::i;:::-;7740:2;7733:22;7509:252;:::o;7766:248::-;7833:2;7827:9;7875:4;7863:17;;7910:18;7895:34;;7931:22;;;7892:62;7889:88;;;7957:18;;:::i;8019:253::-;8091:2;8085:9;8133:4;8121:17;;8168:18;8153:34;;8189:22;;;8150:62;8147:88;;;8215:18;;:::i;8277:154::-;8372:13;;8394:31;8372:13;8394:31;:::i;:::-;8277:154;;;:::o;8436:1097::-;8531:6;8584:3;8572:9;8563:7;8559:23;8555:33;8552:53;;;8601:1;8598;8591:12;8552:53;8627:22;;:::i;:::-;8678:9;8672:16;8665:5;8658:31;8721:65;8782:2;8771:9;8767:18;8721:65;:::i;:::-;8716:2;8709:5;8705:14;8698:89;8819:65;8880:2;8869:9;8865:18;8819:65;:::i;:::-;8814:2;8807:5;8803:14;8796:89;8917:65;8978:2;8967:9;8963:18;8917:65;:::i;:::-;8912:2;8905:5;8901:14;8894:89;9016:66;9077:3;9066:9;9062:19;9016:66;:::i;:::-;9010:3;9003:5;8999:15;8992:91;9116:66;9177:3;9166:9;9162:19;9116:66;:::i;:::-;9110:3;9103:5;9099:15;9092:91;9216:66;9277:3;9266:9;9262:19;9216:66;:::i;:::-;9210:3;9199:15;;9192:91;9337:3;9322:19;;;9316:26;9299:15;;;9292:51;9362:3;9403:18;;;9397:25;9381:14;;;9374:49;9442:3;9483:18;;;9477:25;9461:14;;;9454:49;;;;-1:-1:-1;9203:5:113;8436:1097;-1:-1:-1;8436:1097:113:o;9538:673::-;9613:5;9643:18;9684:2;9676:6;9673:14;9670:40;;;9690:18;;:::i;:::-;9824:2;9818:9;9890:2;9878:15;;9729:66;9874:24;;;9900:2;9870:33;9866:42;9854:55;;;9924:18;;;9944:22;;;9921:46;9918:72;;;9970:18;;:::i;:::-;10010:10;10006:2;9999:22;10039:6;10030:15;;10069:6;10061;10054:22;10109:3;10100:6;10095:3;10091:16;10088:25;10085:45;;;10126:1;10123;10116:12;10085:45;10139:66;10198:6;10191:4;10183:6;10179:17;10174:3;10139:66;:::i;:::-;;;;9538:673;;;;;:::o;10216:1013::-;10312:6;10365:2;10353:9;10344:7;10340:23;10336:32;10333:52;;;10381:1;10378;10371:12;10333:52;10414:9;10408:16;10443:18;10484:2;10476:6;10473:14;10470:34;;;10500:1;10497;10490:12;10470:34;10523:22;;;;10579:4;10561:16;;;10557:27;10554:47;;;10597:1;10594;10587:12;10554:47;10623:17;;:::i;:::-;10669:2;10663:9;10656:5;10649:24;10711:2;10707;10703:11;10697:18;10724:33;10749:7;10724:33;:::i;:::-;10789:7;10784:2;10777:5;10773:14;10766:31;;10843:2;10839;10835:11;10829:18;10824:2;10817:5;10813:14;10806:42;10894:2;10890;10886:11;10880:18;10875:2;10868:5;10864:14;10857:42;10938:3;10934:2;10930:12;10924:19;10968:2;10958:8;10955:16;10952:36;;;10984:1;10981;10974:12;10952:36;11015:8;11011:2;11007:17;10997:27;;;11062:7;11055:4;11051:2;11047:13;11043:27;11033:55;;11084:1;11081;11074:12;11033:55;11121:77;11190:7;11185:2;11179:9;11174:2;11170;11166:11;11121:77;:::i;:::-;11115:3;11104:15;;11097:102;11108:5;10216:1013;-1:-1:-1;;;;;10216:1013:113:o;12295:236::-;12349:5;12402:3;12395:4;12387:6;12383:17;12379:27;12369:55;;12420:1;12417;12410:12;12369:55;12442:83;12521:3;12512:6;12506:13;12499:4;12491:6;12487:17;12442:83;:::i;12536:155::-;12623:13;;12665:1;12655:12;;12645:40;;12681:1;12678;12671:12;12696:1125;12802:6;12855:2;12843:9;12834:7;12830:23;12826:32;12823:52;;;12871:1;12868;12861:12;12823:52;12904:9;12898:16;12933:18;12974:2;12966:6;12963:14;12960:34;;;12990:1;12987;12980:12;12960:34;13013:22;;;;13069:4;13051:16;;;13047:27;13044:47;;;13087:1;13084;13077:12;13044:47;13113:22;;:::i;:::-;13166:2;13160:9;13194:2;13184:8;13181:16;13178:36;;;13210:1;13207;13200:12;13178:36;13237:56;13285:7;13274:8;13270:2;13266:17;13237:56;:::i;:::-;13230:5;13223:71;;13333:2;13329;13325:11;13319:18;13362:2;13352:8;13349:16;13346:36;;;13378:1;13375;13368:12;13346:36;13414:56;13462:7;13451:8;13447:2;13443:17;13414:56;:::i;:::-;13409:2;13402:5;13398:14;13391:80;;13503:50;13549:2;13545;13541:11;13503:50;:::i;:::-;13498:2;13491:5;13487:14;13480:74;13586:58;13640:2;13636;13632:11;13586:58;:::i;:::-;13581:2;13574:5;13570:14;13563:82;13678:59;13732:3;13728:2;13724:12;13678:59;:::i;:::-;13672:3;13665:5;13661:15;13654:84;13785:3;13781:2;13777:12;13771:19;13765:3;13758:5;13754:15;13747:44;13810:5;13800:15;;;;;12696:1125;;;;:::o",
    "linkReferences": {},
    "immutableReferences": {
      "10": [
        {
          "start": 216,
          "length": 32
        },
        {
          "start": 321,
          "length": 32
        },
        {
          "start": 438,
          "length": 32
        },
        {
          "start": 591,
          "length": 32
        },
        {
          "start": 728,
          "length": 32
        },
        {
          "start": 931,
          "length": 32
        },
        {
          "start": 2004,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "ORACLE()": "38013f02",
    "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\":[{\"internalType\":\"contract IOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"body\",\"type\":\"string\"},{\"internalType\":\"enum IHttpRequestModule.HttpMethod\",\"name\":\"method\",\"type\":\"uint8\"},{\"internalType\":\"contract IAccountingExtension\",\"name\":\"accountingExtension\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct IHttpRequestModule.RequestParameters\",\"name\":\"_params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"finalizeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_moduleName\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"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\":{\"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)\":{\"params\":{\"_requestId\":\"The ID of the request\"}},\"moduleName()\":{\"returns\":{\"_moduleName\":\"The name of the module.\"}},\"oracle()\":{\"returns\":{\"_oracle\":\"The address of the oracle\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}]},\"events\":{\"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 a request by paying the proposer if there is a valid response or releases the requester bond if no valid response was provided\"},\"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\":{\"compilationTarget\":{\"solidity/contracts/modules/request/HttpRequestModule.sol\":\"HttpRequestModule\"},\"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/contracts/Module.sol\":{\"keccak256\":\"0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41\",\"dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7\"]},\"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/IOracle.sol\":{\"keccak256\":\"0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823\",\"dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol\":{\"keccak256\":\"0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d\",\"dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol\":{\"keccak256\":\"0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e\",\"dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol\":{\"keccak256\":\"0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d\",\"dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol\":{\"keccak256\":\"0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67\",\"dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol\":{\"keccak256\":\"0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf\",\"dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"solidity/contracts/modules/request/HttpRequestModule.sol\":{\"keccak256\":\"0xb644a3a6645e9bcf7d7ad83a585a0499d4d3080c1fc70f222ee351f2cb453bf5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bba308aa874d3eba82f48ccfe32a9d241f5a1dda08d7e7576135a2a646813cd7\",\"dweb:/ipfs/QmVeLSKjctY2pog4o74pcqEPv6VdmvucgD9r9Enw9RvMzP\"]},\"solidity/interfaces/extensions/IAccountingExtension.sol\":{\"keccak256\":\"0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0\",\"dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5\"]},\"solidity/interfaces/modules/request/IHttpRequestModule.sol\":{\"keccak256\":\"0x2fa459a84a7c2479ef8ce54a96f9fd51b84b3d1cbbf3663d5f0620f54ede50e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82d89585c5f2bde9e38e84344e6a55adf51c98dc25b2c878f4ba9a63ffd4a33a\",\"dweb:/ipfs/QmdurS6s2E6e1zcHKYkRkz3Lb1EB31cjw98THfuLAZUy42\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "contract IOracle",
              "name": "_oracle",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "Module_OnlyOracle"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "ORACLE",
          "outputs": [
            {
              "internalType": "contract IOracle",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "struct IHttpRequestModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "string",
                  "name": "url",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "body",
                  "type": "string"
                },
                {
                  "internalType": "enum IHttpRequestModule.HttpMethod",
                  "name": "method",
                  "type": "uint8"
                },
                {
                  "internalType": "contract IAccountingExtension",
                  "name": "accountingExtension",
                  "type": "address"
                },
                {
                  "internalType": "contract IERC20",
                  "name": "paymentToken",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "paymentAmount",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "inputs": [],
          "stateMutability": "pure",
          "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)": {
            "params": {
              "_requestId": "The ID of the request"
            }
          },
          "moduleName()": {
            "returns": {
              "_moduleName": "The name of the module."
            }
          },
          "oracle()": {
            "returns": {
              "_oracle": "The address of the oracle"
            }
          },
          "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 a request by paying the proposer if there is a valid response or releases the requester bond if no valid response was provided"
          },
          "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/contracts/modules/request/HttpRequestModule.sol": "HttpRequestModule"
      },
      "libraries": {}
    },
    "sources": {
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol": {
        "keccak256": "0xb528e0eea66984412d038db1edcbfe77ac642089975fae6b0b44e8be13319bbf",
        "urls": [
          "bzz-raw://e70d520407288d43d7c735fd7355502b514ba6feacaeb4a5dd86497e3f91eb41",
          "dweb:/ipfs/QmPXY7uXjnsFacp6VpL45bMrxCZGtQ8AAnecTXC9ASkpV7"
        ],
        "license": "MIT"
      },
      "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/IOracle.sol": {
        "keccak256": "0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf",
        "urls": [
          "bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823",
          "dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol": {
        "keccak256": "0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4",
        "urls": [
          "bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d",
          "dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM"
        ],
        "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"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol": {
        "keccak256": "0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032",
        "urls": [
          "bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d",
          "dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol": {
        "keccak256": "0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6",
        "urls": [
          "bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67",
          "dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol": {
        "keccak256": "0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b",
        "urls": [
          "bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf",
          "dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305",
        "urls": [
          "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5",
          "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"
        ],
        "license": "MIT"
      },
      "solidity/contracts/modules/request/HttpRequestModule.sol": {
        "keccak256": "0xb644a3a6645e9bcf7d7ad83a585a0499d4d3080c1fc70f222ee351f2cb453bf5",
        "urls": [
          "bzz-raw://bba308aa874d3eba82f48ccfe32a9d241f5a1dda08d7e7576135a2a646813cd7",
          "dweb:/ipfs/QmVeLSKjctY2pog4o74pcqEPv6VdmvucgD9r9Enw9RvMzP"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/extensions/IAccountingExtension.sol": {
        "keccak256": "0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e",
        "urls": [
          "bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0",
          "dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/modules/request/IHttpRequestModule.sol": {
        "keccak256": "0x2fa459a84a7c2479ef8ce54a96f9fd51b84b3d1cbbf3663d5f0620f54ede50e6",
        "urls": [
          "bzz-raw://82d89585c5f2bde9e38e84344e6a55adf51c98dc25b2c878f4ba9a63ffd4a33a",
          "dweb:/ipfs/QmdurS6s2E6e1zcHKYkRkz3Lb1EB31cjw98THfuLAZUy42"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/contracts/modules/request/HttpRequestModule.sol",
    "id": 38428,
    "exportedSymbols": {
      "HttpRequestModule": [
        38427
      ],
      "IHttpRequestModule": [
        43382
      ],
      "IModule": [
        1782
      ],
      "IOracle": [
        2282
      ],
      "Module": [
        98
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:2296:48",
    "nodes": [
      {
        "id": 38249,
        "nodeType": "PragmaDirective",
        "src": "32:24:48",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 38252,
        "nodeType": "ImportDirective",
        "src": "104:102:48",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/contracts/Module.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 38428,
        "sourceUnit": 99,
        "symbolAliases": [
          {
            "foreign": {
              "id": 38250,
              "name": "Module",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 98,
              "src": "112:6:48",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 38251,
              "name": "IModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1782,
              "src": "120:7:48",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 38254,
        "nodeType": "ImportDirective",
        "src": "207:96:48",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 38428,
        "sourceUnit": 2283,
        "symbolAliases": [
          {
            "foreign": {
              "id": 38253,
              "name": "IOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2282,
              "src": "215:7:48",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 38256,
        "nodeType": "ImportDirective",
        "src": "305:94:48",
        "nodes": [],
        "absolutePath": "solidity/interfaces/modules/request/IHttpRequestModule.sol",
        "file": "../../../interfaces/modules/request/IHttpRequestModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 38428,
        "sourceUnit": 43383,
        "symbolAliases": [
          {
            "foreign": {
              "id": 38255,
              "name": "IHttpRequestModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 43382,
              "src": "313:18:48",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 38427,
        "nodeType": "ContractDefinition",
        "src": "401:1926:48",
        "nodes": [
          {
            "id": 38270,
            "nodeType": "FunctionDefinition",
            "src": "462:47:48",
            "nodes": [],
            "body": {
              "id": 38269,
              "nodeType": "Block",
              "src": "507:2:48",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38266,
                    "name": "_oracle",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38263,
                    "src": "498:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  }
                ],
                "id": 38267,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 38265,
                  "name": "Module",
                  "nameLocations": [
                    "491:6:48"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "491:6:48"
                },
                "nodeType": "ModifierInvocation",
                "src": "491:15:48"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 38264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38263,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "482:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 38270,
                  "src": "474:15:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracle_$2282",
                    "typeString": "contract IOracle"
                  },
                  "typeName": {
                    "id": 38262,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38261,
                      "name": "IOracle",
                      "nameLocations": [
                        "474:7:48"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2282,
                      "src": "474:7:48"
                    },
                    "referencedDeclaration": 2282,
                    "src": "474:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "473:17:48"
            },
            "returnParameters": {
              "id": 38268,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "507:0:48"
            },
            "scope": 38427,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 38281,
            "nodeType": "FunctionDefinition",
            "src": "539:114:48",
            "nodes": [],
            "body": {
              "id": 38280,
              "nodeType": "Block",
              "src": "609:44:48",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 38278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 38276,
                      "name": "_moduleName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38274,
                      "src": "615:11:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "48747470526571756573744d6f64756c65",
                      "id": 38277,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "629:19:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_64e75f97bdea18f37cc28a9aa967702ca7758a38c5a5c0a3c4395207676b3f63",
                        "typeString": "literal_string \"HttpRequestModule\""
                      },
                      "value": "HttpRequestModule"
                    },
                    "src": "615:33:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 38279,
                  "nodeType": "ExpressionStatement",
                  "src": "615:33:48"
                }
              ]
            },
            "baseFunctions": [
              1781
            ],
            "documentation": {
              "id": 38271,
              "nodeType": "StructuredDocumentation",
              "src": "513:23:48",
              "text": "@inheritdoc IModule"
            },
            "functionSelector": "93f0899a",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "moduleName",
            "nameLocation": "548:10:48",
            "parameters": {
              "id": 38272,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "558:2:48"
            },
            "returnParameters": {
              "id": 38275,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38274,
                  "mutability": "mutable",
                  "name": "_moduleName",
                  "nameLocation": "596:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 38281,
                  "src": "582:25:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 38273,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "582:6:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "581:27:48"
            },
            "scope": 38427,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 38302,
            "nodeType": "FunctionDefinition",
            "src": "694:179:48",
            "nodes": [],
            "body": {
              "id": 38301,
              "nodeType": "Block",
              "src": "796:77:48",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 38299,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 38290,
                      "name": "_params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38288,
                      "src": "802:7:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                        "typeString": "struct IHttpRequestModule.RequestParameters memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 38293,
                            "name": "requestData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14,
                            "src": "823:11:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                              "typeString": "mapping(bytes32 => bytes storage ref)"
                            }
                          },
                          "id": 38295,
                          "indexExpression": {
                            "id": 38294,
                            "name": "_requestId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38284,
                            "src": "835:10:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "823:23:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        },
                        {
                          "components": [
                            {
                              "id": 38296,
                              "name": "RequestParameters",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43361,
                              "src": "849:17:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43361_storage_ptr_$",
                                "typeString": "type(struct IHttpRequestModule.RequestParameters storage pointer)"
                              }
                            }
                          ],
                          "id": 38297,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "848:19:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43361_storage_ptr_$",
                            "typeString": "type(struct IHttpRequestModule.RequestParameters storage pointer)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43361_storage_ptr_$",
                            "typeString": "type(struct IHttpRequestModule.RequestParameters storage pointer)"
                          }
                        ],
                        "expression": {
                          "id": 38291,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "812:3:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 38292,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "816:6:48",
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "src": "812:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 38298,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "812:56:48",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                        "typeString": "struct IHttpRequestModule.RequestParameters memory"
                      }
                    },
                    "src": "802:66:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                      "typeString": "struct IHttpRequestModule.RequestParameters memory"
                    }
                  },
                  "id": 38300,
                  "nodeType": "ExpressionStatement",
                  "src": "802:66:48"
                }
              ]
            },
            "baseFunctions": [
              43373
            ],
            "documentation": {
              "id": 38282,
              "nodeType": "StructuredDocumentation",
              "src": "657:34:48",
              "text": "@inheritdoc IHttpRequestModule"
            },
            "functionSelector": "4d610a46",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "703:17:48",
            "parameters": {
              "id": 38285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38284,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "729:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 38302,
                  "src": "721:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38283,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "721:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "720:20:48"
            },
            "returnParameters": {
              "id": 38289,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38288,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "787:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 38302,
                  "src": "762:32:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                    "typeString": "struct IHttpRequestModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 38287,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38286,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "762:17:48"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 43361,
                      "src": "762:17:48"
                    },
                    "referencedDeclaration": 43361,
                    "src": "762:17:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43361_storage_ptr",
                      "typeString": "struct IHttpRequestModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "761:34:48"
            },
            "scope": 38427,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 38343,
            "nodeType": "FunctionDefinition",
            "src": "974:411:48",
            "nodes": [],
            "body": {
              "id": 38342,
              "nodeType": "Block",
              "src": "1056:329:48",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    38313
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38313,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "1087:7:48",
                      "nodeType": "VariableDeclaration",
                      "scope": 38342,
                      "src": "1062:32:48",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                        "typeString": "struct IHttpRequestModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 38312,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38311,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "1062:17:48"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 43361,
                          "src": "1062:17:48"
                        },
                        "referencedDeclaration": 43361,
                        "src": "1062:17:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$43361_storage_ptr",
                          "typeString": "struct IHttpRequestModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38317,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38315,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38305,
                        "src": "1115:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 38314,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38302,
                      "src": "1097:17:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$43361_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct IHttpRequestModule.RequestParameters memory)"
                      }
                    },
                    "id": 38316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1097:29:48",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                      "typeString": "struct IHttpRequestModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1062:64:48"
                },
                {
                  "assignments": [
                    38322
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38322,
                      "mutability": "mutable",
                      "name": "_request",
                      "nameLocation": "1155:8:48",
                      "nodeType": "VariableDeclaration",
                      "scope": 38342,
                      "src": "1132:31:48",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request"
                      },
                      "typeName": {
                        "id": 38321,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38320,
                          "name": "IOracle.Request",
                          "nameLocations": [
                            "1132:7:48",
                            "1140:7:48"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 1954,
                          "src": "1132:15:48"
                        },
                        "referencedDeclaration": 1954,
                        "src": "1132:15:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$1954_storage_ptr",
                          "typeString": "struct IOracle.Request"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38327,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38325,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38305,
                        "src": "1184:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 38323,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1166:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 38324,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1173:10:48",
                      "memberName": "getRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2144,
                      "src": "1166:17:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Request_$1954_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct IOracle.Request memory)"
                      }
                    },
                    "id": 38326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1166:29:48",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                      "typeString": "struct IOracle.Request memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1132:63:48"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 38333,
                          "name": "_request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38322,
                          "src": "1251:8:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                            "typeString": "struct IOracle.Request memory"
                          }
                        },
                        "id": 38334,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1260:9:48",
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1947,
                        "src": "1251:18:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 38335,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38305,
                        "src": "1289:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 38336,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38313,
                          "src": "1315:7:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                            "typeString": "struct IHttpRequestModule.RequestParameters memory"
                          }
                        },
                        "id": 38337,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1323:12:48",
                        "memberName": "paymentToken",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43358,
                        "src": "1315:20:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "expression": {
                          "id": 38338,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38313,
                          "src": "1352:7:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                            "typeString": "struct IHttpRequestModule.RequestParameters memory"
                          }
                        },
                        "id": 38339,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1360:13:48",
                        "memberName": "paymentAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43360,
                        "src": "1352:21:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 38328,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38313,
                          "src": "1201:7:48",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                            "typeString": "struct IHttpRequestModule.RequestParameters memory"
                          }
                        },
                        "id": 38331,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1209:19:48",
                        "memberName": "accountingExtension",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43355,
                        "src": "1201:27:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                          "typeString": "contract IAccountingExtension"
                        }
                      },
                      "id": 38332,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1229:4:48",
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42530,
                      "src": "1201:32:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                        "typeString": "function (address,bytes32,contract IERC20,uint256) external"
                      }
                    },
                    "id": 38340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "1242:7:48",
                      "1277:10:48",
                      "1307:6:48",
                      "1343:7:48"
                    ],
                    "names": [
                      "_bonder",
                      "_requestId",
                      "_token",
                      "_amount"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "1201:179:48",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 38341,
                  "nodeType": "ExpressionStatement",
                  "src": "1201:179:48"
                }
              ]
            },
            "baseFunctions": [
              97
            ],
            "documentation": {
              "id": 38303,
              "nodeType": "StructuredDocumentation",
              "src": "877:94:48",
              "text": " @notice Bonds the requester tokens to use as payment for the response proposer."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterSetupRequest",
            "nameLocation": "983:18:48",
            "overrides": {
              "id": 38309,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1047:8:48"
            },
            "parameters": {
              "id": 38308,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38305,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1010:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 38343,
                  "src": "1002:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38304,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1002:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38307,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38343,
                  "src": "1022:14:48",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 38306,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1022:5:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1001:36:48"
            },
            "returnParameters": {
              "id": 38310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1056:0:48"
            },
            "scope": 38427,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 38426,
            "nodeType": "FunctionDefinition",
            "src": "1426:899:48",
            "nodes": [],
            "body": {
              "id": 38425,
              "nodeType": "Block",
              "src": "1560:765:48",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    38360
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38360,
                      "mutability": "mutable",
                      "name": "_request",
                      "nameLocation": "1589:8:48",
                      "nodeType": "VariableDeclaration",
                      "scope": 38425,
                      "src": "1566:31:48",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request"
                      },
                      "typeName": {
                        "id": 38359,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38358,
                          "name": "IOracle.Request",
                          "nameLocations": [
                            "1566:7:48",
                            "1574:7:48"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 1954,
                          "src": "1566:15:48"
                        },
                        "referencedDeclaration": 1954,
                        "src": "1566:15:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$1954_storage_ptr",
                          "typeString": "struct IOracle.Request"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38365,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38363,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38346,
                        "src": "1618:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 38361,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1600:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 38362,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1607:10:48",
                      "memberName": "getRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2144,
                      "src": "1600:17:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Request_$1954_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct IOracle.Request memory)"
                      }
                    },
                    "id": 38364,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1600:29:48",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                      "typeString": "struct IOracle.Request memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1566:63:48"
                },
                {
                  "assignments": [
                    38370
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38370,
                      "mutability": "mutable",
                      "name": "_response",
                      "nameLocation": "1659:9:48",
                      "nodeType": "VariableDeclaration",
                      "scope": 38425,
                      "src": "1635:33:48",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response"
                      },
                      "typeName": {
                        "id": 38369,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38368,
                          "name": "IOracle.Response",
                          "nameLocations": [
                            "1635:7:48",
                            "1643:8:48"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2031,
                          "src": "1635:16:48"
                        },
                        "referencedDeclaration": 2031,
                        "src": "1635:16:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                          "typeString": "struct IOracle.Response"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38375,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38373,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38346,
                        "src": "1699:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 38371,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1671:6:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 38372,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1678:20:48",
                      "memberName": "getFinalizedResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2258,
                      "src": "1671:27:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_Response_$2031_memory_ptr_$",
                        "typeString": "function (bytes32) view external returns (struct IOracle.Response memory)"
                      }
                    },
                    "id": 38374,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1671:39:48",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1635:75:48"
                },
                {
                  "assignments": [
                    38378
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38378,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "1741:7:48",
                      "nodeType": "VariableDeclaration",
                      "scope": 38425,
                      "src": "1716:32:48",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                        "typeString": "struct IHttpRequestModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 38377,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38376,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "1716:17:48"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 43361,
                          "src": "1716:17:48"
                        },
                        "referencedDeclaration": 43361,
                        "src": "1716:17:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$43361_storage_ptr",
                          "typeString": "struct IHttpRequestModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38382,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38380,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38346,
                        "src": "1769:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 38379,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38302,
                      "src": "1751:17:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$43361_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct IHttpRequestModule.RequestParameters memory)"
                      }
                    },
                    "id": 38381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1751:29:48",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                      "typeString": "struct IHttpRequestModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1716:64:48"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 38386,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 38383,
                        "name": "_response",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38370,
                        "src": "1790:9:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                          "typeString": "struct IOracle.Response memory"
                        }
                      },
                      "id": 38384,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1800:9:48",
                      "memberName": "createdAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2022,
                      "src": "1790:19:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 38385,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1813:1:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1790:24:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 38418,
                    "nodeType": "Block",
                    "src": "2063:207:48",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 38409,
                                "name": "_request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38360,
                                "src": "2126:8:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                                  "typeString": "struct IOracle.Request memory"
                                }
                              },
                              "id": 38410,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2135:9:48",
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1947,
                              "src": "2126:18:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 38411,
                              "name": "_requestId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38346,
                              "src": "2166:10:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 38412,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38378,
                                "src": "2194:7:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                                  "typeString": "struct IHttpRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38413,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2202:12:48",
                              "memberName": "paymentToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43358,
                              "src": "2194:20:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              }
                            },
                            {
                              "expression": {
                                "id": 38414,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38378,
                                "src": "2233:7:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                                  "typeString": "struct IHttpRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38415,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2241:13:48",
                              "memberName": "paymentAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43360,
                              "src": "2233:21:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 38404,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38378,
                                "src": "2071:7:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                                  "typeString": "struct IHttpRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38407,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2079:19:48",
                              "memberName": "accountingExtension",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43355,
                              "src": "2071:27:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                                "typeString": "contract IAccountingExtension"
                              }
                            },
                            "id": 38408,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2099:7:48",
                            "memberName": "release",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42558,
                            "src": "2071:35:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                              "typeString": "function (address,bytes32,contract IERC20,uint256) external"
                            }
                          },
                          "id": 38416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "2117:7:48",
                            "2154:10:48",
                            "2186:6:48",
                            "2224:7:48"
                          ],
                          "names": [
                            "_bonder",
                            "_requestId",
                            "_token",
                            "_amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "2071:192:48",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 38417,
                        "nodeType": "ExpressionStatement",
                        "src": "2071:192:48"
                      }
                    ]
                  },
                  "id": 38419,
                  "nodeType": "IfStatement",
                  "src": "1786:484:48",
                  "trueBody": {
                    "id": 38403,
                    "nodeType": "Block",
                    "src": "1816:241:48",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 38392,
                              "name": "_requestId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38346,
                              "src": "1878:10:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 38393,
                                "name": "_request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38360,
                                "src": "1906:8:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                                  "typeString": "struct IOracle.Request memory"
                                }
                              },
                              "id": 38394,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1915:9:48",
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1947,
                              "src": "1906:18:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 38395,
                                "name": "_response",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38370,
                                "src": "1945:9:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                                  "typeString": "struct IOracle.Response memory"
                                }
                              },
                              "id": 38396,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1955:8:48",
                              "memberName": "proposer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2024,
                              "src": "1945:18:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 38397,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38378,
                                "src": "1981:7:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                                  "typeString": "struct IHttpRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38398,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1989:12:48",
                              "memberName": "paymentToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43358,
                              "src": "1981:20:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              }
                            },
                            {
                              "expression": {
                                "id": 38399,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38378,
                                "src": "2020:7:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                                  "typeString": "struct IHttpRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38400,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2028:13:48",
                              "memberName": "paymentAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43360,
                              "src": "2020:21:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 38387,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38378,
                                "src": "1824:7:48",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43361_memory_ptr",
                                  "typeString": "struct IHttpRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38390,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1832:19:48",
                              "memberName": "accountingExtension",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43355,
                              "src": "1824:27:48",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                                "typeString": "contract IAccountingExtension"
                              }
                            },
                            "id": 38391,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1852:3:48",
                            "memberName": "pay",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42517,
                            "src": "1824:31:48",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_contract$_IERC20_$2822_$_t_uint256_$returns$__$",
                              "typeString": "function (bytes32,address,address,contract IERC20,uint256) external"
                            }
                          },
                          "id": 38401,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "1866:10:48",
                            "1898:6:48",
                            "1934:9:48",
                            "1973:6:48",
                            "2011:7:48"
                          ],
                          "names": [
                            "_requestId",
                            "_payer",
                            "_receiver",
                            "_token",
                            "_amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "1824:226:48",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 38402,
                        "nodeType": "ExpressionStatement",
                        "src": "1824:226:48"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 38421,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38346,
                        "src": "2297:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 38422,
                        "name": "_finalizer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38348,
                        "src": "2309:10:48",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 38420,
                      "name": "RequestFinalized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1742,
                      "src": "2280:16:48",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 38423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2280:40:48",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 38424,
                  "nodeType": "EmitStatement",
                  "src": "2275:45:48"
                }
              ]
            },
            "baseFunctions": [
              88,
              43381
            ],
            "documentation": {
              "id": 38344,
              "nodeType": "StructuredDocumentation",
              "src": "1389:34:48",
              "text": "@inheritdoc IHttpRequestModule"
            },
            "functionSelector": "309de607",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 38354,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38353,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "1549:10:48"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "1549:10:48"
                },
                "nodeType": "ModifierInvocation",
                "src": "1549:10:48"
              }
            ],
            "name": "finalizeRequest",
            "nameLocation": "1435:15:48",
            "overrides": {
              "id": 38352,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 38350,
                  "name": "IHttpRequestModule",
                  "nameLocations": [
                    "1521:18:48"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 43382,
                  "src": "1521:18:48"
                },
                {
                  "id": 38351,
                  "name": "Module",
                  "nameLocations": [
                    "1541:6:48"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "1541:6:48"
                }
              ],
              "src": "1512:36:48"
            },
            "parameters": {
              "id": 38349,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38346,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1464:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 38426,
                  "src": "1456:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38345,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1456:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38348,
                  "mutability": "mutable",
                  "name": "_finalizer",
                  "nameLocation": "1488:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 38426,
                  "src": "1480:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 38347,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1480:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1450:52:48"
            },
            "returnParameters": {
              "id": 38355,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1560:0:48"
            },
            "scope": 38427,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 38257,
              "name": "Module",
              "nameLocations": [
                "431:6:48"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 98,
              "src": "431:6:48"
            },
            "id": 38258,
            "nodeType": "InheritanceSpecifier",
            "src": "431:6:48"
          },
          {
            "baseName": {
              "id": 38259,
              "name": "IHttpRequestModule",
              "nameLocations": [
                "439:18:48"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 43382,
              "src": "439:18:48"
            },
            "id": 38260,
            "nodeType": "InheritanceSpecifier",
            "src": "439:18:48"
          }
        ],
        "canonicalName": "HttpRequestModule",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          38427,
          43382,
          2360,
          98,
          1782
        ],
        "name": "HttpRequestModule",
        "nameLocation": "410:17:48",
        "scope": 38428,
        "usedErrors": [
          1745
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 48
}