{
  "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": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "bytes4",
              "name": "functionSelector",
              "type": "bytes4"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "contract IAccountingExtension",
              "name": "accountingExtension",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "paymentToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "paymentAmount",
              "type": "uint256"
            }
          ],
          "internalType": "struct IContractCallRequestModule.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": "0x60a060405234801561001057600080fd5b5060405161112338038061112383398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161106f6100b46000396000818160d801528181610141015281816101b60152818161024f015281816102d8015281816103a301526107cb015261106f6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806338013f021161005b57806338013f02146100d35780634d610a461461011f5780637dc0d1d01461013f57806393f0899a1461016557600080fd5b80632e76be2a14610082578063309de607146100975780633661346b146100aa575b600080fd5b6100956100903660046108e9565b61019e565b005b6100956100a536600461098a565b610237565b6100bd6100b83660046109ba565b6105fe565b6040516100ca9190610a41565b60405180910390f35b6100fa7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ca565b61013261012d3660046109ba565b610698565b6040516100ca9190610a5b565b7f00000000000000000000000000000000000000000000000000000000000000006100fa565b60408051808201909152601981527f436f6e747261637443616c6c526571756573744d6f64756c650000000000000060208201526100bd565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461020d576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152602081905260409020610226828483610bc3565b50610232838383610776565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a6576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffb1e61ca000000000000000000000000000000000000000000000000000000008152600481018390526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063fb1e61ca9060240161014060405180830381865afa158015610335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103599190610d5e565b6040517f163ed02f0000000000000000000000000000000000000000000000000000000081526004810185905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063163ed02f90602401600060405180830381865afa1580156103ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104309190810190610eb2565b9050600061043d85610698565b82519091501561050257606081015160c08401516020840151608084015160a08501516040517fcab0e418000000000000000000000000000000000000000000000000000000008152600481018b905273ffffffffffffffffffffffffffffffffffffffff948516602482015292841660448401529083166064830152608482015291169063cab0e4189060a401600060405180830381600087803b1580156104e557600080fd5b505af11580156104f9573d6000803e3d6000fd5b505050506105ac565b606081015160c0840151608083015160a08401516040517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018a90529183166044830152606482015291169063a6d09dc890608401600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050505b60405173ffffffffffffffffffffffffffffffffffffffff8516815285907f898b6025fbfa120421d24d3735eb8c51885040c2ba00c10ffe007e3356f058ff9060200160405180910390a25050505050565b6000602081905290815260409020805461061790610b22565b80601f016020809104026020016040519081016040528092919081815260200182805461064390610b22565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b505050505081565b6040805160c08101825260008082526020808301829052606083850181905283018290526080830182905260a083018290528482528190529190912080546106df90610b22565b80601f016020809104026020016040519081016040528092919081815260200182805461070b90610b22565b80156107585780601f1061072d57610100808354040283529160200191610758565b820191906000526020600020905b81548152906001019060200180831161073b57829003601f168201915b50505050508060200190518101906107709190610f52565b92915050565b600061078184610698565b6040517ffb1e61ca0000000000000000000000000000000000000000000000000000000081526004810186905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fb1e61ca9060240161014060405180830381865afa158015610813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108379190610d5e565b606083015160c0820151608085015160a08601516040517fbba9f26f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018b905291831660448301526064820152929350169063bba9f26f90608401600060405180830381600087803b1580156108ca57600080fd5b505af11580156108de573d6000803e3d6000fd5b505050505050505050565b6000806000604084860312156108fe57600080fd5b83359250602084013567ffffffffffffffff8082111561091d57600080fd5b818601915086601f83011261093157600080fd5b81358181111561094057600080fd5b87602082850101111561095257600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff8116811461098757600080fd5b50565b6000806040838503121561099d57600080fd5b8235915060208301356109af81610965565b809150509250929050565b6000602082840312156109cc57600080fd5b5035919050565b60005b838110156109ee5781810151838201526020016109d6565b50506000910152565b60008151808452610a0f8160208601602086016109d3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a5460208301846109f7565b9392505050565b60208152600073ffffffffffffffffffffffffffffffffffffffff8084511660208401527fffffffff000000000000000000000000000000000000000000000000000000006020850151166040840152604084015160c06060850152610ac460e08501826109f7565b90508160608601511660808501528160808601511660a085015260a085015160c0850152809250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c90821680610b3657607f821691505b602082108103610b6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561023257600081815260208120601f850160051c81016020861015610b9c5750805b601f850160051c820191505b81811015610bbb57828155600101610ba8565b505050505050565b67ffffffffffffffff831115610bdb57610bdb610af3565b610bef83610be98354610b22565b83610b75565b6000601f841160018114610c415760008515610c0b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610cd7565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015610c905786850135825560209485019460019092019101610c70565b5086821015610ccb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b604051610140810167ffffffffffffffff81118282101715610d0257610d02610af3565b60405290565b60405160a0810167ffffffffffffffff81118282101715610d0257610d02610af3565b60405160c0810167ffffffffffffffff81118282101715610d0257610d02610af3565b8051610d5981610965565b919050565b60006101408284031215610d7157600080fd5b610d79610cde565b82518152610d8960208401610d4e565b6020820152610d9a60408401610d4e565b6040820152610dab60608401610d4e565b6060820152610dbc60808401610d4e565b6080820152610dcd60a08401610d4e565b60a0820152610dde60c08401610d4e565b60c082015260e083810151908201526101008084015190820152610120928301519281019290925250919050565b600082601f830112610e1d57600080fd5b815167ffffffffffffffff80821115610e3857610e38610af3565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610e7e57610e7e610af3565b81604052838152866020858801011115610e9757600080fd5b610ea88460208301602089016109d3565b9695505050505050565b600060208284031215610ec457600080fd5b815167ffffffffffffffff80821115610edc57600080fd5b9083019060a08286031215610ef057600080fd5b610ef8610d08565b825181526020830151610f0a81610965565b806020830152506040830151604082015260608301516060820152608083015182811115610f3757600080fd5b610f4387828601610e0c565b60808301525095945050505050565b600060208284031215610f6457600080fd5b815167ffffffffffffffff80821115610f7c57600080fd5b9083019060c08286031215610f9057600080fd5b610f98610d2b565b8251610fa381610965565b815260208301517fffffffff0000000000000000000000000000000000000000000000000000000081168114610fd857600080fd5b6020820152604083015182811115610fef57600080fd5b610ffb87828601610e0c565b60408301525061100d60608401610d4e565b606082015261101e60808401610d4e565b608082015260a083015160a08201528093505050509291505056fea2646970667358221220ce177e46a1de3c66537fdf40246819f49b12ce67fd69826356326adac9388d0164736f6c63430008130033",
    "sourceMap": "417:2021:47:-:0;;;494:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;353:16:0;;;417:2021:47;;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;:::-;417:2021:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806338013f021161005b57806338013f02146100d35780634d610a461461011f5780637dc0d1d01461013f57806393f0899a1461016557600080fd5b80632e76be2a14610082578063309de607146100975780633661346b146100aa575b600080fd5b6100956100903660046108e9565b61019e565b005b6100956100a536600461098a565b610237565b6100bd6100b83660046109ba565b6105fe565b6040516100ca9190610a41565b60405180910390f35b6100fa7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ca565b61013261012d3660046109ba565b610698565b6040516100ca9190610a5b565b7f00000000000000000000000000000000000000000000000000000000000000006100fa565b60408051808201909152601981527f436f6e747261637443616c6c526571756573744d6f64756c650000000000000060208201526100bd565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461020d576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152602081905260409020610226828483610bc3565b50610232838383610776565b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102a6576040517fbb44f97c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffb1e61ca000000000000000000000000000000000000000000000000000000008152600481018390526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063fb1e61ca9060240161014060405180830381865afa158015610335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103599190610d5e565b6040517f163ed02f0000000000000000000000000000000000000000000000000000000081526004810185905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063163ed02f90602401600060405180830381865afa1580156103ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526104309190810190610eb2565b9050600061043d85610698565b82519091501561050257606081015160c08401516020840151608084015160a08501516040517fcab0e418000000000000000000000000000000000000000000000000000000008152600481018b905273ffffffffffffffffffffffffffffffffffffffff948516602482015292841660448401529083166064830152608482015291169063cab0e4189060a401600060405180830381600087803b1580156104e557600080fd5b505af11580156104f9573d6000803e3d6000fd5b505050506105ac565b606081015160c0840151608083015160a08401516040517fa6d09dc800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018a90529183166044830152606482015291169063a6d09dc890608401600060405180830381600087803b15801561059357600080fd5b505af11580156105a7573d6000803e3d6000fd5b505050505b60405173ffffffffffffffffffffffffffffffffffffffff8516815285907f898b6025fbfa120421d24d3735eb8c51885040c2ba00c10ffe007e3356f058ff9060200160405180910390a25050505050565b6000602081905290815260409020805461061790610b22565b80601f016020809104026020016040519081016040528092919081815260200182805461064390610b22565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b505050505081565b6040805160c08101825260008082526020808301829052606083850181905283018290526080830182905260a083018290528482528190529190912080546106df90610b22565b80601f016020809104026020016040519081016040528092919081815260200182805461070b90610b22565b80156107585780601f1061072d57610100808354040283529160200191610758565b820191906000526020600020905b81548152906001019060200180831161073b57829003601f168201915b50505050508060200190518101906107709190610f52565b92915050565b600061078184610698565b6040517ffb1e61ca0000000000000000000000000000000000000000000000000000000081526004810186905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fb1e61ca9060240161014060405180830381865afa158015610813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108379190610d5e565b606083015160c0820151608085015160a08601516040517fbba9f26f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9384166004820152602481018b905291831660448301526064820152929350169063bba9f26f90608401600060405180830381600087803b1580156108ca57600080fd5b505af11580156108de573d6000803e3d6000fd5b505050505050505050565b6000806000604084860312156108fe57600080fd5b83359250602084013567ffffffffffffffff8082111561091d57600080fd5b818601915086601f83011261093157600080fd5b81358181111561094057600080fd5b87602082850101111561095257600080fd5b6020830194508093505050509250925092565b73ffffffffffffffffffffffffffffffffffffffff8116811461098757600080fd5b50565b6000806040838503121561099d57600080fd5b8235915060208301356109af81610965565b809150509250929050565b6000602082840312156109cc57600080fd5b5035919050565b60005b838110156109ee5781810151838201526020016109d6565b50506000910152565b60008151808452610a0f8160208601602086016109d3565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610a5460208301846109f7565b9392505050565b60208152600073ffffffffffffffffffffffffffffffffffffffff8084511660208401527fffffffff000000000000000000000000000000000000000000000000000000006020850151166040840152604084015160c06060850152610ac460e08501826109f7565b90508160608601511660808501528160808601511660a085015260a085015160c0850152809250505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600181811c90821680610b3657607f821691505b602082108103610b6f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f82111561023257600081815260208120601f850160051c81016020861015610b9c5750805b601f850160051c820191505b81811015610bbb57828155600101610ba8565b505050505050565b67ffffffffffffffff831115610bdb57610bdb610af3565b610bef83610be98354610b22565b83610b75565b6000601f841160018114610c415760008515610c0b5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355610cd7565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015610c905786850135825560209485019460019092019101610c70565b5086821015610ccb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b604051610140810167ffffffffffffffff81118282101715610d0257610d02610af3565b60405290565b60405160a0810167ffffffffffffffff81118282101715610d0257610d02610af3565b60405160c0810167ffffffffffffffff81118282101715610d0257610d02610af3565b8051610d5981610965565b919050565b60006101408284031215610d7157600080fd5b610d79610cde565b82518152610d8960208401610d4e565b6020820152610d9a60408401610d4e565b6040820152610dab60608401610d4e565b6060820152610dbc60808401610d4e565b6080820152610dcd60a08401610d4e565b60a0820152610dde60c08401610d4e565b60c082015260e083810151908201526101008084015190820152610120928301519281019290925250919050565b600082601f830112610e1d57600080fd5b815167ffffffffffffffff80821115610e3857610e38610af3565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610e7e57610e7e610af3565b81604052838152866020858801011115610e9757600080fd5b610ea88460208301602089016109d3565b9695505050505050565b600060208284031215610ec457600080fd5b815167ffffffffffffffff80821115610edc57600080fd5b9083019060a08286031215610ef057600080fd5b610ef8610d08565b825181526020830151610f0a81610965565b806020830152506040830151604082015260608301516060820152608083015182811115610f3757600080fd5b610f4387828601610e0c565b60808301525095945050505050565b600060208284031215610f6457600080fd5b815167ffffffffffffffff80821115610f7c57600080fd5b9083019060c08286031215610f9057600080fd5b610f98610d2b565b8251610fa381610965565b815260208301517fffffffff0000000000000000000000000000000000000000000000000000000081168114610fd857600080fd5b6020820152604083015182811115610fef57600080fd5b610ffb87828601610e0c565b60408301525061100d60608401610d4e565b606082015261101e60808401610d4e565b608082015260a083015160a08201528093505050509291505056fea2646970667358221220ce177e46a1de3c66537fdf40246819f49b12ce67fd69826356326adac9388d0164736f6c63430008130033",
    "sourceMap": "417:2021:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:175:0;;;;;;:::i;:::-;;:::i;:::-;;1529:907:47;;;;;;:::i;:::-;;:::i;237:68:0:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;201:31;;;;;;;;2345:42:113;2333:55;;;2315:74;;2303:2;2288:18;201:31:0;2153:242:113;742:179:47;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;571:94:0:-;653:6;571:94;;:122:47;647:41;;;;;;;;;;;;;;;;;571:122;;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;1529:907:47:-;472:10:0;:29;494:6;472:29;;468:61;;510:19;;;;;;;;;;;;;;468:61;1711:29:47::1;::::0;;;;::::1;::::0;::::1;6720:25:113::0;;;1677:31:47::1;::::0;1711:6:::1;:17;;::::0;::::1;::::0;6693:18:113;;1711:29:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1782:39;::::0;;;;::::1;::::0;::::1;6720:25:113::0;;;1677:63:47;;-1:-1:-1;1746:33:47::1;::::0;1782:27:::1;:6;:27;::::0;::::1;::::0;6693:18:113;;1782:39:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;1746:75;;1827:32;1862:29;1880:10;1862:17;:29::i;:::-;1901:19:::0;;1827:64;;-1:-1:-1;1901:24:47;1897:484:::1;;1935:27;::::0;::::1;::::0;2017:18:::1;::::0;::::1;::::0;2056::::1;::::0;::::1;::::0;2092:20:::1;::::0;::::1;::::0;2131:21:::1;::::0;::::1;::::0;1935:226:::1;::::0;;;;::::1;::::0;::::1;10717:25:113::0;;;1935:31:47::1;10839:15:113::0;;;10819:18;;;10812:43;10891:15;;;10871:18;;;10864:43;10943:15;;;10923:18;;;10916:43;10975:19;;;10968:35;1935:31:47;::::1;::::0;::::1;::::0;10689:19:113;;1935:226:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1897:484;;;2182:27;::::0;::::1;::::0;2237:18:::1;::::0;::::1;::::0;2305:20:::1;::::0;::::1;::::0;2344:21:::1;::::0;::::1;::::0;2182:192:::1;::::0;;;;:35:::1;11339:15:113::0;;;2182:192:47::1;::::0;::::1;11321:34:113::0;11371:18;;;11364:34;;;11434:15;;;11414:18;;;11407:43;11466:18;;;11459:34;2182:35:47;::::1;::::0;::::1;::::0;11232:19:113;;2182:192:47::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1897:484;2391:40;::::0;2345:42:113;2333:55;;2315:74;;2408:10:47;;2391:40:::1;::::0;2303:2:113;2288:18;2391:40:47::1;;;;;;;1671:765;;;1529:907:::0;;:::o;237:68:0:-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;742:179:47:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;871:23:47;;;;;;;;;;860:56;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;850:66;742:179;-1:-1:-1;;742:179:47:o;1069:411::-;1157:32;1192:29;1210:10;1192:17;:29::i;:::-;1261;;;;;;;;6720:25:113;;;1157:64:47;;-1:-1:-1;1227:31:47;;1261:17;:6;:17;;;;6693:18:113;;1261:29:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1296:27;;;;1346:18;;;;1410:20;;;;1447:21;;;;1296:179;;;;;:32;11339:15:113;;;1296:179:47;;;11321:34:113;11371:18;;;11364:34;;;11434:15;;;11414:18;;;11407:43;11466:18;;;11459:34;1227:63:47;;-1:-1:-1;1296:32:47;;;;11232:19:113;;1296:179:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:329;;1069: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;2400:852::-;2601:2;2590:9;2583:21;2564:4;2623:42;2720:2;2711:6;2705:13;2701:22;2696:2;2685:9;2681:18;2674:50;2788:66;2782:2;2774:6;2770:15;2764:22;2760:95;2755:2;2744:9;2740:18;2733:123;2903:2;2895:6;2891:15;2885:22;2943:4;2938:2;2927:9;2923:18;2916:32;2971:51;3017:3;3006:9;3002:19;2988:12;2971:51;:::i;:::-;2957:65;;3087:2;3081;3073:6;3069:15;3063:22;3059:31;3053:3;3042:9;3038:19;3031:60;3157:2;3150:3;3142:6;3138:16;3132:23;3128:32;3122:3;3111:9;3107:19;3100:61;3217:3;3209:6;3205:16;3199:23;3192:4;3181:9;3177:20;3170:53;3240:6;3232:14;;;;2400:852;;;;:::o;3712:184::-;3764:77;3761:1;3754:88;3861:4;3858:1;3851:15;3885:4;3882:1;3875:15;3901:437;3980:1;3976:12;;;;4023;;;4044:61;;4098:4;4090:6;4086:17;4076:27;;4044:61;4151:2;4143:6;4140:14;4120:18;4117:38;4114:218;;4188:77;4185:1;4178:88;4289:4;4286:1;4279:15;4317:4;4314:1;4307:15;4114:218;;3901:437;;;:::o;4468:544::-;4569:2;4564:3;4561:11;4558:448;;;4605:1;4630:5;4626:2;4619:17;4675:4;4671:2;4661:19;4745:2;4733:10;4729:19;4726:1;4722:27;4716:4;4712:38;4781:4;4769:10;4766:20;4763:47;;;-1:-1:-1;4804:4:113;4763:47;4859:2;4854:3;4850:12;4847:1;4843:20;4837:4;4833:31;4823:41;;4914:82;4932:2;4925:5;4922:13;4914:82;;;4977:17;;;4958:1;4947:13;4914:82;;;4918:3;;;4468:544;;;:::o;5248:1321::-;5370:18;5365:3;5362:27;5359:53;;;5392:18;;:::i;:::-;5421:93;5510:3;5470:38;5502:4;5496:11;5470:38;:::i;:::-;5464:4;5421:93;:::i;:::-;5540:1;5565:2;5560:3;5557:11;5582:1;5577:734;;;;6355:1;6372:3;6369:93;;;-1:-1:-1;6428:19:113;;;6415:33;6369:93;5154:66;5145:1;5141:11;;;5137:84;5133:89;5123:100;5229:1;5225:11;;;5120:117;6475:78;;5550:1013;;5577:734;4415:1;4408:14;;;4452:4;4439:18;;5622:66;5613:76;;;5772:9;5794:229;5808:7;5805:1;5802:14;5794:229;;;5897:19;;;5884:33;5869:49;;6004:4;5989:20;;;;5957:1;5945:14;;;;5824:12;5794:229;;;5798:3;6051;6042:7;6039:16;6036:219;;;6171:66;6165:3;6159;6156:1;6152:11;6148:21;6144:94;6140:99;6127:9;6122:3;6118:19;6105:33;6101:139;6093:6;6086:155;6036:219;;;6298:1;6292:3;6289:1;6285:11;6281:19;6275:4;6268:33;5550:1013;;;5248:1321;;;:::o;6756:247::-;6823:2;6817:9;6865:3;6853:16;;6899:18;6884:34;;6920:22;;;6881:62;6878:88;;;6946:18;;:::i;:::-;6982:2;6975:22;6756:247;:::o;7008:253::-;7080:2;7074:9;7122:4;7110:17;;7157:18;7142:34;;7178:22;;;7139:62;7136:88;;;7204:18;;:::i;7266:253::-;7338:2;7332:9;7380:4;7368:17;;7415:18;7400:34;;7436:22;;;7397:62;7394:88;;;7462:18;;:::i;7524:154::-;7619:13;;7641:31;7619:13;7641:31;:::i;:::-;7524:154;;;:::o;7683:1092::-;7778:6;7831:3;7819:9;7810:7;7806:23;7802:33;7799:53;;;7848:1;7845;7838:12;7799:53;7874:17;;:::i;:::-;7920:9;7914:16;7907:5;7900:31;7963:65;8024:2;8013:9;8009:18;7963:65;:::i;:::-;7958:2;7951:5;7947:14;7940:89;8061:65;8122:2;8111:9;8107:18;8061:65;:::i;:::-;8056:2;8049:5;8045:14;8038:89;8159:65;8220:2;8209:9;8205:18;8159:65;:::i;:::-;8154:2;8147:5;8143:14;8136:89;8258:66;8319:3;8308:9;8304:19;8258:66;:::i;:::-;8252:3;8245:5;8241:15;8234:91;8358:66;8419:3;8408:9;8404:19;8358:66;:::i;:::-;8352:3;8345:5;8341:15;8334:91;8458:66;8519:3;8508:9;8504:19;8458:66;:::i;:::-;8452:3;8441:15;;8434:91;8579:3;8564:19;;;8558:26;8541:15;;;8534:51;8604:3;8645:18;;;8639:25;8623:14;;;8616:49;8684:3;8725:18;;;8719:25;8703:14;;;8696:49;;;;-1:-1:-1;8445:5:113;7683:1092;-1:-1:-1;7683:1092:113:o;8780:757::-;8833:5;8886:3;8879:4;8871:6;8867:17;8863:27;8853:55;;8904:1;8901;8894:12;8853:55;8933:6;8927:13;8959:18;8996:2;8992;8989:10;8986:36;;;9002:18;;:::i;:::-;9136:2;9130:9;9198:4;9190:13;;9041:66;9186:22;;;9210:2;9182:31;9178:40;9166:53;;;9234:18;;;9254:22;;;9231:46;9228:72;;;9280:18;;:::i;:::-;9320:10;9316:2;9309:22;9355:2;9347:6;9340:18;9401:3;9394:4;9389:2;9381:6;9377:15;9373:26;9370:35;9367:55;;;9418:1;9415;9408:12;9367:55;9431:76;9504:2;9497:4;9489:6;9485:17;9478:4;9470:6;9466:17;9431:76;:::i;:::-;9525:6;8780:757;-1:-1:-1;;;;;;8780:757:113:o;9542:896::-;9638:6;9691:2;9679:9;9670:7;9666:23;9662:32;9659:52;;;9707:1;9704;9697:12;9659:52;9740:9;9734:16;9769:18;9810:2;9802:6;9799:14;9796:34;;;9826:1;9823;9816:12;9796:34;9849:22;;;;9905:4;9887:16;;;9883:27;9880:47;;;9923:1;9920;9913:12;9880:47;9949:22;;:::i;:::-;10000:2;9994:9;9987:5;9980:24;10042:2;10038;10034:11;10028:18;10055:33;10080:7;10055:33;:::i;:::-;10120:7;10115:2;10108:5;10104:14;10097:31;;10174:2;10170;10166:11;10160:18;10155:2;10148:5;10144:14;10137:42;10225:2;10221;10217:11;10211:18;10206:2;10199:5;10195:14;10188:42;10269:3;10265:2;10261:12;10255:19;10299:2;10289:8;10286:16;10283:36;;;10315:1;10312;10305:12;10283:36;10352:55;10399:7;10388:8;10384:2;10380:17;10352:55;:::i;:::-;10346:3;10335:15;;10328:80;-1:-1:-1;10339:5:113;9542:896;-1:-1:-1;;;;;9542:896:113:o;11504:1200::-;11610:6;11663:2;11651:9;11642:7;11638:23;11634:32;11631:52;;;11679:1;11676;11669:12;11631:52;11712:9;11706:16;11741:18;11782:2;11774:6;11771:14;11768:34;;;11798:1;11795;11788:12;11768:34;11821:22;;;;11877:4;11859:16;;;11855:27;11852:47;;;11895:1;11892;11885:12;11852:47;11921:22;;:::i;:::-;11973:2;11967:9;11985:33;12010:7;11985:33;:::i;:::-;12027:22;;12087:2;12079:11;;12073:18;12135:66;12122:80;;12110:93;;12100:121;;12217:1;12214;12207:12;12100:121;12248:2;12237:14;;12230:31;12300:2;12292:11;;12286:18;12316:16;;;12313:36;;;12345:1;12342;12335:12;12313:36;12381:55;12428:7;12417:8;12413:2;12409:17;12381:55;:::i;:::-;12376:2;12369:5;12365:14;12358:79;;12469:58;12523:2;12519;12515:11;12469:58;:::i;:::-;12464:2;12457:5;12453:14;12446:82;12561:59;12615:3;12611:2;12607:12;12561:59;:::i;:::-;12555:3;12548:5;12544:15;12537:84;12668:3;12664:2;12660:12;12654:19;12648:3;12641:5;12637:15;12630:44;12693:5;12683:15;;;;;11504:1200;;;;:::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": 1995,
          "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\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"contract IAccountingExtension\",\"name\":\"accountingExtension\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"paymentToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paymentAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct IContractCallRequestModule.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 response proposer\"},\"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/ContractCallRequestModule.sol\":\"ContractCallRequestModule\"},\"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/ContractCallRequestModule.sol\":{\"keccak256\":\"0x5867535beb3984e2179dc32d0da74c83b726e823877cb0bc991fc2690029aff9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2350ec4cba772c708f6215f7f5de0f77e34b302943768832d6a885ab0363a25\",\"dweb:/ipfs/QmNou4UvtRHmxcHE34x1hicUaTeTVFqHj7sMLeMLmWDfKa\"]},\"solidity/interfaces/extensions/IAccountingExtension.sol\":{\"keccak256\":\"0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0\",\"dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5\"]},\"solidity/interfaces/modules/request/IContractCallRequestModule.sol\":{\"keccak256\":\"0x3540997cb8e85db9e3f55de697109125b1d7e50b841e7294f5fb09c1b8185eb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9615dde2184070122bc8f2ee03e7f5aaf26bed8070c057baf068822724b48c26\",\"dweb:/ipfs/QmXfrrgAGvDb9xnLLWCcfswTtx6UFc3hqQtreDUxTnfCwj\"]}},\"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 IContractCallRequestModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "address",
                  "name": "target",
                  "type": "address"
                },
                {
                  "internalType": "bytes4",
                  "name": "functionSelector",
                  "type": "bytes4"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "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 response proposer"
          },
          "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/ContractCallRequestModule.sol": "ContractCallRequestModule"
      },
      "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/ContractCallRequestModule.sol": {
        "keccak256": "0x5867535beb3984e2179dc32d0da74c83b726e823877cb0bc991fc2690029aff9",
        "urls": [
          "bzz-raw://d2350ec4cba772c708f6215f7f5de0f77e34b302943768832d6a885ab0363a25",
          "dweb:/ipfs/QmNou4UvtRHmxcHE34x1hicUaTeTVFqHj7sMLeMLmWDfKa"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/extensions/IAccountingExtension.sol": {
        "keccak256": "0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e",
        "urls": [
          "bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0",
          "dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/modules/request/IContractCallRequestModule.sol": {
        "keccak256": "0x3540997cb8e85db9e3f55de697109125b1d7e50b841e7294f5fb09c1b8185eb5",
        "urls": [
          "bzz-raw://9615dde2184070122bc8f2ee03e7f5aaf26bed8070c057baf068822724b48c26",
          "dweb:/ipfs/QmXfrrgAGvDb9xnLLWCcfswTtx6UFc3hqQtreDUxTnfCwj"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/contracts/modules/request/ContractCallRequestModule.sol",
    "id": 38248,
    "exportedSymbols": {
      "ContractCallRequestModule": [
        38247
      ],
      "IContractCallRequestModule": [
        43335
      ],
      "IModule": [
        1782
      ],
      "IOracle": [
        2282
      ],
      "Module": [
        98
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:2407:47",
    "nodes": [
      {
        "id": 38069,
        "nodeType": "PragmaDirective",
        "src": "32:24:47",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 38072,
        "nodeType": "ImportDirective",
        "src": "104:102:47",
        "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": 38248,
        "sourceUnit": 99,
        "symbolAliases": [
          {
            "foreign": {
              "id": 38070,
              "name": "Module",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 98,
              "src": "112:6:47",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 38071,
              "name": "IModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1782,
              "src": "120:7:47",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 38074,
        "nodeType": "ImportDirective",
        "src": "207:96:47",
        "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": 38248,
        "sourceUnit": 2283,
        "symbolAliases": [
          {
            "foreign": {
              "id": 38073,
              "name": "IOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2282,
              "src": "215:7:47",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 38076,
        "nodeType": "ImportDirective",
        "src": "305:110:47",
        "nodes": [],
        "absolutePath": "solidity/interfaces/modules/request/IContractCallRequestModule.sol",
        "file": "../../../interfaces/modules/request/IContractCallRequestModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 38248,
        "sourceUnit": 43336,
        "symbolAliases": [
          {
            "foreign": {
              "id": 38075,
              "name": "IContractCallRequestModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 43335,
              "src": "313:26:47",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 38247,
        "nodeType": "ContractDefinition",
        "src": "417:2021:47",
        "nodes": [
          {
            "id": 38090,
            "nodeType": "FunctionDefinition",
            "src": "494:47:47",
            "nodes": [],
            "body": {
              "id": 38089,
              "nodeType": "Block",
              "src": "539:2:47",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 38086,
                    "name": "_oracle",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 38083,
                    "src": "530:7:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  }
                ],
                "id": 38087,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 38085,
                  "name": "Module",
                  "nameLocations": [
                    "523:6:47"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "523:6:47"
                },
                "nodeType": "ModifierInvocation",
                "src": "523:15:47"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 38084,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38083,
                  "mutability": "mutable",
                  "name": "_oracle",
                  "nameLocation": "514:7:47",
                  "nodeType": "VariableDeclaration",
                  "scope": 38090,
                  "src": "506:15:47",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracle_$2282",
                    "typeString": "contract IOracle"
                  },
                  "typeName": {
                    "id": 38082,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38081,
                      "name": "IOracle",
                      "nameLocations": [
                        "506:7:47"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2282,
                      "src": "506:7:47"
                    },
                    "referencedDeclaration": 2282,
                    "src": "506:7:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracle_$2282",
                      "typeString": "contract IOracle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "505:17:47"
            },
            "returnParameters": {
              "id": 38088,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "539:0:47"
            },
            "scope": 38247,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 38101,
            "nodeType": "FunctionDefinition",
            "src": "571:122:47",
            "nodes": [],
            "body": {
              "id": 38100,
              "nodeType": "Block",
              "src": "641:52:47",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 38098,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 38096,
                      "name": "_moduleName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38094,
                      "src": "647:11:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "hexValue": "436f6e747261637443616c6c526571756573744d6f64756c65",
                      "id": 38097,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "661:27:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_2c984a62623ede02aba09ff69866e7f01b2a72aad2c20c2f2048840d6e22e992",
                        "typeString": "literal_string \"ContractCallRequestModule\""
                      },
                      "value": "ContractCallRequestModule"
                    },
                    "src": "647:41:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 38099,
                  "nodeType": "ExpressionStatement",
                  "src": "647:41:47"
                }
              ]
            },
            "baseFunctions": [
              1781
            ],
            "documentation": {
              "id": 38091,
              "nodeType": "StructuredDocumentation",
              "src": "545:23:47",
              "text": "@inheritdoc IModule"
            },
            "functionSelector": "93f0899a",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "moduleName",
            "nameLocation": "580:10:47",
            "parameters": {
              "id": 38092,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "590:2:47"
            },
            "returnParameters": {
              "id": 38095,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38094,
                  "mutability": "mutable",
                  "name": "_moduleName",
                  "nameLocation": "628:11:47",
                  "nodeType": "VariableDeclaration",
                  "scope": 38101,
                  "src": "614:25:47",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 38093,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "614:6:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "613:27:47"
            },
            "scope": 38247,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 38122,
            "nodeType": "FunctionDefinition",
            "src": "742:179:47",
            "nodes": [],
            "body": {
              "id": 38121,
              "nodeType": "Block",
              "src": "844:77:47",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 38119,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 38110,
                      "name": "_params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38108,
                      "src": "850:7:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                        "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "baseExpression": {
                            "id": 38113,
                            "name": "requestData",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14,
                            "src": "871:11:47",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes_storage_$",
                              "typeString": "mapping(bytes32 => bytes storage ref)"
                            }
                          },
                          "id": 38115,
                          "indexExpression": {
                            "id": 38114,
                            "name": "_requestId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38104,
                            "src": "883:10:47",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "871:23:47",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          }
                        },
                        {
                          "components": [
                            {
                              "id": 38116,
                              "name": "RequestParameters",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 43317,
                              "src": "897:17:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43317_storage_ptr_$",
                                "typeString": "type(struct IContractCallRequestModule.RequestParameters storage pointer)"
                              }
                            }
                          ],
                          "id": 38117,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "896:19:47",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43317_storage_ptr_$",
                            "typeString": "type(struct IContractCallRequestModule.RequestParameters storage pointer)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_storage",
                            "typeString": "bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_type$_t_struct$_RequestParameters_$43317_storage_ptr_$",
                            "typeString": "type(struct IContractCallRequestModule.RequestParameters storage pointer)"
                          }
                        ],
                        "expression": {
                          "id": 38111,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "860:3:47",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 38112,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "864:6:47",
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "src": "860:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 38118,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "860:56:47",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                        "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                      }
                    },
                    "src": "850:66:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                      "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                    }
                  },
                  "id": 38120,
                  "nodeType": "ExpressionStatement",
                  "src": "850:66:47"
                }
              ]
            },
            "baseFunctions": [
              43326
            ],
            "documentation": {
              "id": 38102,
              "nodeType": "StructuredDocumentation",
              "src": "697:42:47",
              "text": "@inheritdoc IContractCallRequestModule"
            },
            "functionSelector": "4d610a46",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "751:17:47",
            "parameters": {
              "id": 38105,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38104,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "777:10:47",
                  "nodeType": "VariableDeclaration",
                  "scope": 38122,
                  "src": "769:18:47",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38103,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "769:7:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "768:20:47"
            },
            "returnParameters": {
              "id": 38109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38108,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "835:7:47",
                  "nodeType": "VariableDeclaration",
                  "scope": 38122,
                  "src": "810:32:47",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                    "typeString": "struct IContractCallRequestModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 38107,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 38106,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "810:17:47"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 43317,
                      "src": "810:17:47"
                    },
                    "referencedDeclaration": 43317,
                    "src": "810:17:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43317_storage_ptr",
                      "typeString": "struct IContractCallRequestModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "809:34:47"
            },
            "scope": 38247,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 38163,
            "nodeType": "FunctionDefinition",
            "src": "1069:411:47",
            "nodes": [],
            "body": {
              "id": 38162,
              "nodeType": "Block",
              "src": "1151:329:47",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    38133
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38133,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "1182:7:47",
                      "nodeType": "VariableDeclaration",
                      "scope": 38162,
                      "src": "1157:32:47",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                        "typeString": "struct IContractCallRequestModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 38132,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38131,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "1157:17:47"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 43317,
                          "src": "1157:17:47"
                        },
                        "referencedDeclaration": 43317,
                        "src": "1157:17:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$43317_storage_ptr",
                          "typeString": "struct IContractCallRequestModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38137,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38135,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38125,
                        "src": "1210:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 38134,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38122,
                      "src": "1192:17:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$43317_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct IContractCallRequestModule.RequestParameters memory)"
                      }
                    },
                    "id": 38136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1192:29:47",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                      "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1157:64:47"
                },
                {
                  "assignments": [
                    38142
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38142,
                      "mutability": "mutable",
                      "name": "_request",
                      "nameLocation": "1250:8:47",
                      "nodeType": "VariableDeclaration",
                      "scope": 38162,
                      "src": "1227:31:47",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request"
                      },
                      "typeName": {
                        "id": 38141,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38140,
                          "name": "IOracle.Request",
                          "nameLocations": [
                            "1227:7:47",
                            "1235:7:47"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 1954,
                          "src": "1227:15:47"
                        },
                        "referencedDeclaration": 1954,
                        "src": "1227:15:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$1954_storage_ptr",
                          "typeString": "struct IOracle.Request"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38147,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38145,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38125,
                        "src": "1279:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 38143,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1261:6:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 38144,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1268:10:47",
                      "memberName": "getRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2144,
                      "src": "1261:17:47",
                      "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": 38146,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1261:29:47",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                      "typeString": "struct IOracle.Request memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1227:63:47"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 38153,
                          "name": "_request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38142,
                          "src": "1346:8:47",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                            "typeString": "struct IOracle.Request memory"
                          }
                        },
                        "id": 38154,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1355:9:47",
                        "memberName": "requester",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1947,
                        "src": "1346:18:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 38155,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38125,
                        "src": "1384:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 38156,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38133,
                          "src": "1410:7:47",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                            "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                          }
                        },
                        "id": 38157,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1418:12:47",
                        "memberName": "paymentToken",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43314,
                        "src": "1410:20:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20_$2822",
                          "typeString": "contract IERC20"
                        }
                      },
                      {
                        "expression": {
                          "id": 38158,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38133,
                          "src": "1447:7:47",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                            "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                          }
                        },
                        "id": 38159,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1455:13:47",
                        "memberName": "paymentAmount",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43316,
                        "src": "1447:21:47",
                        "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": 38148,
                          "name": "_params",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38133,
                          "src": "1296:7:47",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                            "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                          }
                        },
                        "id": 38151,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1304:19:47",
                        "memberName": "accountingExtension",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 43311,
                        "src": "1296:27:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                          "typeString": "contract IAccountingExtension"
                        }
                      },
                      "id": 38152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1324:4:47",
                      "memberName": "bond",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 42530,
                      "src": "1296:32:47",
                      "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": 38160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [
                      "1337:7:47",
                      "1372:10:47",
                      "1402:6:47",
                      "1438:7:47"
                    ],
                    "names": [
                      "_bonder",
                      "_requestId",
                      "_token",
                      "_amount"
                    ],
                    "nodeType": "FunctionCall",
                    "src": "1296:179:47",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 38161,
                  "nodeType": "ExpressionStatement",
                  "src": "1296:179:47"
                }
              ]
            },
            "baseFunctions": [
              97
            ],
            "documentation": {
              "id": 38123,
              "nodeType": "StructuredDocumentation",
              "src": "925:141:47",
              "text": " @notice Bonds the requester's funds through the accounting extension\n @param _requestId The id of the request being set up"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterSetupRequest",
            "nameLocation": "1078:18:47",
            "overrides": {
              "id": 38129,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1142:8:47"
            },
            "parameters": {
              "id": 38128,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38125,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1105:10:47",
                  "nodeType": "VariableDeclaration",
                  "scope": 38163,
                  "src": "1097:18:47",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38124,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1097:7:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38127,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 38163,
                  "src": "1117:14:47",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 38126,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1117:5:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1096:36:47"
            },
            "returnParameters": {
              "id": 38130,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1151:0:47"
            },
            "scope": 38247,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 38246,
            "nodeType": "FunctionDefinition",
            "src": "1529:907:47",
            "nodes": [],
            "body": {
              "id": 38245,
              "nodeType": "Block",
              "src": "1671:765:47",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    38180
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38180,
                      "mutability": "mutable",
                      "name": "_request",
                      "nameLocation": "1700:8:47",
                      "nodeType": "VariableDeclaration",
                      "scope": 38245,
                      "src": "1677:31:47",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                        "typeString": "struct IOracle.Request"
                      },
                      "typeName": {
                        "id": 38179,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38178,
                          "name": "IOracle.Request",
                          "nameLocations": [
                            "1677:7:47",
                            "1685:7:47"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 1954,
                          "src": "1677:15:47"
                        },
                        "referencedDeclaration": 1954,
                        "src": "1677:15:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$1954_storage_ptr",
                          "typeString": "struct IOracle.Request"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38185,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38183,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38166,
                        "src": "1729:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 38181,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1711:6:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 38182,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1718:10:47",
                      "memberName": "getRequest",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2144,
                      "src": "1711:17:47",
                      "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": 38184,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1711:29:47",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                      "typeString": "struct IOracle.Request memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1677:63:47"
                },
                {
                  "assignments": [
                    38190
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38190,
                      "mutability": "mutable",
                      "name": "_response",
                      "nameLocation": "1770:9:47",
                      "nodeType": "VariableDeclaration",
                      "scope": 38245,
                      "src": "1746:33:47",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                        "typeString": "struct IOracle.Response"
                      },
                      "typeName": {
                        "id": 38189,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38188,
                          "name": "IOracle.Response",
                          "nameLocations": [
                            "1746:7:47",
                            "1754:8:47"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 2031,
                          "src": "1746:16:47"
                        },
                        "referencedDeclaration": 2031,
                        "src": "1746:16:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_storage_ptr",
                          "typeString": "struct IOracle.Response"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38195,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38193,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38166,
                        "src": "1810:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "id": 38191,
                        "name": "ORACLE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10,
                        "src": "1782:6:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IOracle_$2282",
                          "typeString": "contract IOracle"
                        }
                      },
                      "id": 38192,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1789:20:47",
                      "memberName": "getFinalizedResponse",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2258,
                      "src": "1782:27:47",
                      "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": 38194,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1782:39:47",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                      "typeString": "struct IOracle.Response memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1746:75:47"
                },
                {
                  "assignments": [
                    38198
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 38198,
                      "mutability": "mutable",
                      "name": "_params",
                      "nameLocation": "1852:7:47",
                      "nodeType": "VariableDeclaration",
                      "scope": 38245,
                      "src": "1827:32:47",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                        "typeString": "struct IContractCallRequestModule.RequestParameters"
                      },
                      "typeName": {
                        "id": 38197,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 38196,
                          "name": "RequestParameters",
                          "nameLocations": [
                            "1827:17:47"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 43317,
                          "src": "1827:17:47"
                        },
                        "referencedDeclaration": 43317,
                        "src": "1827:17:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RequestParameters_$43317_storage_ptr",
                          "typeString": "struct IContractCallRequestModule.RequestParameters"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 38202,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 38200,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38166,
                        "src": "1880:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 38199,
                      "name": "decodeRequestData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 38122,
                      "src": "1862:17:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_struct$_RequestParameters_$43317_memory_ptr_$",
                        "typeString": "function (bytes32) view returns (struct IContractCallRequestModule.RequestParameters memory)"
                      }
                    },
                    "id": 38201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1862:29:47",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                      "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1827:64:47"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 38206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 38203,
                        "name": "_response",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38190,
                        "src": "1901:9:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                          "typeString": "struct IOracle.Response memory"
                        }
                      },
                      "id": 38204,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1911:9:47",
                      "memberName": "createdAt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2022,
                      "src": "1901:19:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 38205,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1924:1:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1901:24:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 38238,
                    "nodeType": "Block",
                    "src": "2174:207:47",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "id": 38229,
                                "name": "_request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38180,
                                "src": "2237:8:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                                  "typeString": "struct IOracle.Request memory"
                                }
                              },
                              "id": 38230,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2246:9:47",
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1947,
                              "src": "2237:18:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 38231,
                              "name": "_requestId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38166,
                              "src": "2277:10:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 38232,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38198,
                                "src": "2305:7:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                                  "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38233,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2313:12:47",
                              "memberName": "paymentToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43314,
                              "src": "2305:20:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              }
                            },
                            {
                              "expression": {
                                "id": 38234,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38198,
                                "src": "2344:7:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                                  "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38235,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2352:13:47",
                              "memberName": "paymentAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43316,
                              "src": "2344:21:47",
                              "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": 38224,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38198,
                                "src": "2182:7:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                                  "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38227,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2190:19:47",
                              "memberName": "accountingExtension",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43311,
                              "src": "2182:27:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                                "typeString": "contract IAccountingExtension"
                              }
                            },
                            "id": 38228,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2210:7:47",
                            "memberName": "release",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42558,
                            "src": "2182:35:47",
                            "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": 38236,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "2228:7:47",
                            "2265:10:47",
                            "2297:6:47",
                            "2335:7:47"
                          ],
                          "names": [
                            "_bonder",
                            "_requestId",
                            "_token",
                            "_amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "2182:192:47",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 38237,
                        "nodeType": "ExpressionStatement",
                        "src": "2182:192:47"
                      }
                    ]
                  },
                  "id": 38239,
                  "nodeType": "IfStatement",
                  "src": "1897:484:47",
                  "trueBody": {
                    "id": 38223,
                    "nodeType": "Block",
                    "src": "1927:241:47",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 38212,
                              "name": "_requestId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 38166,
                              "src": "1989:10:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "expression": {
                                "id": 38213,
                                "name": "_request",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38180,
                                "src": "2017:8:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$1954_memory_ptr",
                                  "typeString": "struct IOracle.Request memory"
                                }
                              },
                              "id": 38214,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2026:9:47",
                              "memberName": "requester",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 1947,
                              "src": "2017:18:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 38215,
                                "name": "_response",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38190,
                                "src": "2056:9:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Response_$2031_memory_ptr",
                                  "typeString": "struct IOracle.Response memory"
                                }
                              },
                              "id": 38216,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2066:8:47",
                              "memberName": "proposer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2024,
                              "src": "2056:18:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 38217,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38198,
                                "src": "2092:7:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                                  "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38218,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2100:12:47",
                              "memberName": "paymentToken",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43314,
                              "src": "2092:20:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC20_$2822",
                                "typeString": "contract IERC20"
                              }
                            },
                            {
                              "expression": {
                                "id": 38219,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38198,
                                "src": "2131:7:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                                  "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38220,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2139:13:47",
                              "memberName": "paymentAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43316,
                              "src": "2131:21:47",
                              "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": 38207,
                                "name": "_params",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 38198,
                                "src": "1935:7:47",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RequestParameters_$43317_memory_ptr",
                                  "typeString": "struct IContractCallRequestModule.RequestParameters memory"
                                }
                              },
                              "id": 38210,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1943:19:47",
                              "memberName": "accountingExtension",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 43311,
                              "src": "1935:27:47",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                                "typeString": "contract IAccountingExtension"
                              }
                            },
                            "id": 38211,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1963:3:47",
                            "memberName": "pay",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 42517,
                            "src": "1935:31:47",
                            "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": 38221,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "1977:10:47",
                            "2009:6:47",
                            "2045:9:47",
                            "2084:6:47",
                            "2122:7:47"
                          ],
                          "names": [
                            "_requestId",
                            "_payer",
                            "_receiver",
                            "_token",
                            "_amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "1935:226:47",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 38222,
                        "nodeType": "ExpressionStatement",
                        "src": "1935:226:47"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 38241,
                        "name": "_requestId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38166,
                        "src": "2408:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 38242,
                        "name": "_finalizer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 38168,
                        "src": "2420:10:47",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 38240,
                      "name": "RequestFinalized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1742,
                      "src": "2391:16:47",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 38243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2391:40:47",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 38244,
                  "nodeType": "EmitStatement",
                  "src": "2386:45:47"
                }
              ]
            },
            "baseFunctions": [
              88,
              43334
            ],
            "documentation": {
              "id": 38164,
              "nodeType": "StructuredDocumentation",
              "src": "1484:42:47",
              "text": "@inheritdoc IContractCallRequestModule"
            },
            "functionSelector": "309de607",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 38174,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 38173,
                  "name": "onlyOracle",
                  "nameLocations": [
                    "1660:10:47"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 41,
                  "src": "1660:10:47"
                },
                "nodeType": "ModifierInvocation",
                "src": "1660:10:47"
              }
            ],
            "name": "finalizeRequest",
            "nameLocation": "1538:15:47",
            "overrides": {
              "id": 38172,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 38170,
                  "name": "IContractCallRequestModule",
                  "nameLocations": [
                    "1624:26:47"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 43335,
                  "src": "1624:26:47"
                },
                {
                  "id": 38171,
                  "name": "Module",
                  "nameLocations": [
                    "1652:6:47"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 98,
                  "src": "1652:6:47"
                }
              ],
              "src": "1615:44:47"
            },
            "parameters": {
              "id": 38169,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 38166,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1567:10:47",
                  "nodeType": "VariableDeclaration",
                  "scope": 38246,
                  "src": "1559:18:47",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 38165,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1559:7:47",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 38168,
                  "mutability": "mutable",
                  "name": "_finalizer",
                  "nameLocation": "1591:10:47",
                  "nodeType": "VariableDeclaration",
                  "scope": 38246,
                  "src": "1583:18:47",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 38167,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1583:7:47",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1553:52:47"
            },
            "returnParameters": {
              "id": 38175,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1671:0:47"
            },
            "scope": 38247,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 38077,
              "name": "Module",
              "nameLocations": [
                "455:6:47"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 98,
              "src": "455:6:47"
            },
            "id": 38078,
            "nodeType": "InheritanceSpecifier",
            "src": "455:6:47"
          },
          {
            "baseName": {
              "id": 38079,
              "name": "IContractCallRequestModule",
              "nameLocations": [
                "463:26:47"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 43335,
              "src": "463:26:47"
            },
            "id": 38080,
            "nodeType": "InheritanceSpecifier",
            "src": "463:26:47"
          }
        ],
        "canonicalName": "ContractCallRequestModule",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          38247,
          43335,
          2360,
          98,
          1782
        ],
        "name": "ContractCallRequestModule",
        "nameLocation": "426:25:47",
        "scope": 38248,
        "usedErrors": [
          1745
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 47
}