{
  "contractName": "OVM_GasPriceOracle",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "getL1Fee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getL1Fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/core/customs/WitnetOracleTrustableOvm2.sol\":\"OVM_GasPriceOracle\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"project:/contracts/WitnetOracle.sol\":{\"keccak256\":\"0x84ef8d2ebcba273e4bc23a5ee414a1213df55d1b4e496197a146031fea3a4874\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4a6e31964ed08c4c9dfe5279b4ffe9eeba6e759f15901e080e174e98e96a7f5\",\"dweb:/ipfs/QmTghzVFf2EHnfnHejgFGRBjanXYcstK9ftVaYmHWJfk8w\"]},\"project:/contracts/WitnetRequestBytecodes.sol\":{\"keccak256\":\"0x2a79d919dd79c0e3f857e6bee08368ad0b463188aced4a52de29270ed0f5f3d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://290d6013ee9f75fedbbb7726527a637ea2ae7a5da0ad118ecc43b298846f0bb0\",\"dweb:/ipfs/QmU8AZtPyctrrvxdmH297p595ZMS6DgcD6djSFKNxAqYMs\"]},\"project:/contracts/WitnetRequestFactory.sol\":{\"keccak256\":\"0x3c66f27d7c1db0e662c37d98005c4cbd871ceb75e97079d7bf673fb75d59c858\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52adb318b870d0825718125e94fdbdd0e968ced09926420e2543b0ca4c6eb579\",\"dweb:/ipfs/QmYack87Q2UTfQb8KLLEPFBrMJgN2o6PaPqPNSc95McPVH\"]},\"project:/contracts/core/WitnetProxy.sol\":{\"keccak256\":\"0x2b2f56fc69bf0e01f6f1062202d1682cd394fa3b3d9ff2f8f833ab51c9e866cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8017f76a71e4a52a5a5e249081c92510bac5b91f03f727e66ff4406238521337\",\"dweb:/ipfs/QmdWcPAL3MGtxGdpX5CMfgzz4YzxYEeCiFRoGHVCr8rLEL\"]},\"project:/contracts/core/WitnetUpgradableBase.sol\":{\"keccak256\":\"0x9cea47781e0005266e14fadf8d1ee565d0814d4d51b30dced11bdee37b663060\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb1f843f53c693f4b5a8f32249ac2eb93095671b99c90aa7c6d335eb7153e827\",\"dweb:/ipfs/QmSLvVGCcg2FZVWPB82yVb57SFixkuDm2BqjvgzJpnYfZp\"]},\"project:/contracts/core/customs/WitnetOracleTrustableOvm2.sol\":{\"keccak256\":\"0x6eb35438e7e1e29128f03124fc79f3b23a59f3af10564582497673ae55627cab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc5947567cfc98ce0f98f985a4beb27ad569c90ba779bcfd2c50d67795d00423\",\"dweb:/ipfs/QmTiX4XjojsL4dfoiUUWbmFCZWseCCR1eiKsswbvRGNELE\"]},\"project:/contracts/core/defaults/WitnetOracleTrustableBase.sol\":{\"keccak256\":\"0xeb14d9ac86e9983b41cc3a307acd4e6546c9c3f790234ca1c208aa4c189a27df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://73c7f71f22a0cf9e70681641b131ba42233c6bd03c4170d5ac153153de206c04\",\"dweb:/ipfs/QmPMKe45EGWbUoDPTF2Y8VDZ8Q3eEfbJFHt8DW9Y5x6NYn\"]},\"project:/contracts/core/defaults/WitnetOracleTrustableDefault.sol\":{\"keccak256\":\"0x3e4ce76102aef381af61296fb19e5fa1e36682cb13f0c21b882b590b06efc218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae39d2d0043a5b073177eb94f876dda7a2531d99f01162852d513dee36a7465e\",\"dweb:/ipfs/QmdGnCi4m478KEUdFv5w9Zqmmdc1SgmYB6KeRtbW4MC41P\"]},\"project:/contracts/data/WitnetOracleDataLib.sol\":{\"keccak256\":\"0x03c8b61605f0c5324047aa99c896fe189933e3e9a59b070b9b3ea6141f7db960\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cedd0416337f718a44bbbaf53efa99ba490f7de1e6ab45f6bdf29e03082aa29d\",\"dweb:/ipfs/Qmb8RUaZEFX5CvE1VTYpTrm1EhM62gAUcZ4dGt3w39gZBA\"]},\"project:/contracts/interfaces/IWitnetConsumer.sol\":{\"keccak256\":\"0xf90fbcf0a59428c0ac13a3903214656060a95175adfdef8c11a7e16675b849e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2606640d3f343051ea18dfb8e136dfdb73ceecd8016c82ddb73d67ad39a30e0\",\"dweb:/ipfs/QmTADVW4M8pge6pGfenFAauEDk4yZEy78o5ksZiKGwP3DT\"]},\"project:/contracts/interfaces/IWitnetOracle.sol\":{\"keccak256\":\"0x5dbb04fce5e05675325232a735c46617378982b48dac2138aca0c6cc95e6e4d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7447a70455478239500e16aebe5dce6676dc86307d22f662761d8e9f7c5d1276\",\"dweb:/ipfs/QmVkvA4Mt6G1JXxE8ebxKGAjT1WvNbp5QMKg9sUKdrJjhv\"]},\"project:/contracts/interfaces/IWitnetOracleEvents.sol\":{\"keccak256\":\"0x0442f474f253dc1f6bd6a4f153c3adb2abe5f6f0f24c76d1baf666185e61e659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://535e8efcfc5693669d9bd2b6f62e6fc65aca19b7de355a27152e4362b410540d\",\"dweb:/ipfs/QmVZRXgku1cZewhoucebaiBKAyUjF2dmEzYrzGvjPzbwN9\"]},\"project:/contracts/interfaces/IWitnetOracleReporter.sol\":{\"keccak256\":\"0xf4726c5c522b99ce01c2c870c259ebb8dc1563a25df3d715ed78cff89a8bb122\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11d4d7205c416fc2927856c2ab64a7d2d5374900c6ad41320f512a0f2e17f215\",\"dweb:/ipfs/QmW8gmJ5rkd4K7ahPQ6KuCQ5wdnhoZJTpSL5iPkZcg2dAe\"]},\"project:/contracts/interfaces/IWitnetRequestBoardAdminACLs.sol\":{\"keccak256\":\"0xf7dccb4e47d281ce229a9dc219fb2b30dea26f6ad80225f21c75b103d5ab1230\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://814f304ff435f64bbcac9ac512ca636c3245f522f87285909c9a9e0ec6dc5368\",\"dweb:/ipfs/QmXtmoYRgm2iXQmLUmVoRz8d5PNqrZXid4SgX4BoDs8rcm\"]},\"project:/contracts/interfaces/IWitnetRequestBytecodes.sol\":{\"keccak256\":\"0x8da168bee9a78442216965976b1f29087f760f37dcb09337283242599ed1cbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e120623262ee0559913bdae56c0a7921147dfe08ada7ea81061b14e2fc38c5e1\",\"dweb:/ipfs/Qmbxe8XRrH6ZjJHiR6YYzcZV1jnSWwo9iBYz5r6GJ6To5G\"]},\"project:/contracts/interfaces/IWitnetRequestFactory.sol\":{\"keccak256\":\"0x3b19ec4a976745ba2646e7e1886d647ef30ad678460a712c93bbfb4405b57f1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa759ae15b7d4da622a81d50933474910959ac490d8b63ea2e7ed8608859a9c9\",\"dweb:/ipfs/QmRckCu7eBBP5fn9ff6djs7VbdhFc7sxYb2yqDr4go66jV\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]},\"project:/contracts/libs/WitnetErrorsLib.sol\":{\"keccak256\":\"0x6cc28a70034f65099ec7e69d03a6c9cb643a77032c0e6d76532b77b036ef8436\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44eff62b48c4daf5606fae9b04dca6201af4336909d5966c2a2503c866b9efb0\",\"dweb:/ipfs/QmSc4qNo2ymtCevvgDKESYuVi1JD7PCWbMKfDoEhNwj4aS\"]},\"project:/contracts/libs/WitnetV2.sol\":{\"keccak256\":\"0xb276a6da373bfbe9cd942dd7e59979cda898215d1e36ab3df95a6d6cc6ff770f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc4890876b9bc64f501ccdd48408bb63724865cb2ce8d2057f6b318540adce7c\",\"dweb:/ipfs/QmPMHPdbCsKBavhiLcaDgQ9EjNSvwwzv8TKffotcCv1ctP\"]},\"project:/contracts/patterns/Initializable.sol\":{\"keccak256\":\"0xaac470e87f361cf15d68d1618d6eb7d4913885d33ccc39c797841a9591d44296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef3760b2039feda8715d4bd9f8de8e3885f25573d12ba92f52d626ba880a08bf\",\"dweb:/ipfs/QmP2mfHPBKkjTAKft95sPDb4PBsjfmAwc47Kdcv3xYSf3g\"]},\"project:/contracts/patterns/Ownable.sol\":{\"keccak256\":\"0x494bda32f9a218d9c33ea82112129c0933ab52f57eabfbf0d14a8742a3370800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c4cf04ebb052fed9d15cf93ff4523955ee311aa4425ee85f0e80b4489c94e76\",\"dweb:/ipfs/QmfMf4WD7woTaQSTbJxxoan2aXSeY7ovY5NoipSBw5rMPK\"]},\"project:/contracts/patterns/Ownable2Step.sol\":{\"keccak256\":\"0x7033d8133957a291cf9b8be30bfc4b95e6414a20995911d1b5df8ea149580604\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e20a079adc224113306392d27e0cf202c6c4a7678c4705fd3bbbca99c1e9b816\",\"dweb:/ipfs/QmWrFv2SbSokhrWhwL94sW5x1HyT7rX5f4Scowe4bWHHqu\"]},\"project:/contracts/patterns/Payable.sol\":{\"keccak256\":\"0x83401b23b1c144561e674e86738e0d907c8fa15d90d79254415b3f5f215035c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e031f9a24c7030cd2d160a64a581fd3a69a06d7dc71bcf704b48f391c3d63fc6\",\"dweb:/ipfs/QmVpX6PdfgPGJZp3W5H4CGqVUqmNx9ttb4V5cz3YgBTypQ\"]},\"project:/contracts/patterns/Proxiable.sol\":{\"keccak256\":\"0x86032205378fed9ed2bf155eed8ce4bdbb13b7f5960850c6d50954a38b61a3d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f89978eda4244a13f42a6092a94ac829bb3e38c92d77d4978b9f32894b187a63\",\"dweb:/ipfs/Qmbc1XaFCvLm3Sxvh7tP29Ug32jBGy3avsCqBGAptxs765\"]},\"project:/contracts/patterns/ReentrancyGuard.sol\":{\"keccak256\":\"0x1470caf4bd78b79f706e28a8a85c95a6e13ec33eda04275e5da84464130831e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c974fb4dc29718a84f9ab5fa3f8c25c7f889050a38445e16c3ead5ff9d4b4bab\",\"dweb:/ipfs/QmbuGjkSjngbTZMRPijL9p56fP9cK5jMnWsFmvYAQj3qAY\"]},\"project:/contracts/patterns/Upgradeable.sol\":{\"keccak256\":\"0xbeb025c71f037acb1a668174eb6930631bf397129beb825f2660e5d8cf19614f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe6ce4dcd500093ae069d35b91829ccb471e1ca33ed0851fb053fbfe76c78aba\",\"dweb:/ipfs/QmT7huvCFS6bHDxt7HhEogJmyvYNbeb6dFTJudsVSX6nEs\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\n/* solhint-disable var-name-mixedcase */\r\n\r\npragma solidity >=0.7.0 <0.9.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"../defaults/WitnetOracleTrustableDefault.sol\";\r\n\r\n// solhint-disable-next-line\r\ninterface OVM_GasPriceOracle {\r\n    function getL1Fee(bytes calldata _data) external view returns (uint256);\r\n}\r\n\r\n/// @title Witnet Request Board \"trustable\" implementation contract.\r\n/// @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\r\n/// @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\r\n/// The result of the requests will be posted back to this contract by the bridge nodes too.\r\n/// @author The Witnet Foundation\r\ncontract WitnetOracleTrustableOvm2\r\n    is \r\n        WitnetOracleTrustableDefault\r\n{\r\n    using WitnetV2 for WitnetV2.RadonSLA;\r\n\r\n    function class() virtual override public view returns (string memory) {\r\n        return type(WitnetOracleTrustableOvm2).name;\r\n    }\r\n\r\n    constructor(\r\n            WitnetRequestFactory _factory,\r\n            WitnetRequestBytecodes _registry,\r\n            bool _upgradable,\r\n            bytes32 _versionTag,\r\n            uint256 _reportResultGasBase,\r\n            uint256 _reportResultWithCallbackGasBase,\r\n            uint256 _reportResultWithCallbackRevertGasBase,\r\n            uint256 _sstoreFromZeroGas\r\n        )\r\n        WitnetOracleTrustableDefault(\r\n            _factory,\r\n            _registry,\r\n            _upgradable,\r\n            _versionTag,\r\n            _reportResultGasBase,\r\n            _reportResultWithCallbackGasBase,\r\n            _reportResultWithCallbackRevertGasBase,\r\n            _sstoreFromZeroGas\r\n        )\r\n    {\r\n        __gasPriceOracleL1 = OVM_GasPriceOracle(0x420000000000000000000000000000000000000F);\r\n    }\r\n\r\n    OVM_GasPriceOracle immutable internal __gasPriceOracleL1;\r\n\r\n    function _getCurrentL1Fee(uint16 _resultMaxSize) virtual internal view returns (uint256) {\r\n        return __gasPriceOracleL1.getL1Fee(\r\n            abi.encodePacked(\r\n                hex\"06eb2c42000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000ffffffffff00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000ff\",\r\n                _resultMaxBuffer(_resultMaxSize)\r\n            )\r\n        );\r\n    }\r\n\r\n    function _resultMaxBuffer(uint16 _resultMaxSize) private pure returns (bytes memory) {\r\n        unchecked {\r\n            uint256[] memory _buffer = new uint256[](_resultMaxSize / 32);\r\n            for (uint _ix = 0; _ix < _buffer.length; _ix ++) {\r\n                _buffer[_ix] = type(uint256).max;\r\n            }\r\n            return abi.encodePacked(\r\n                _buffer,\r\n                uint256((1 << (_resultMaxSize % 32)) - 1)\r\n            );\r\n        }\r\n    }\r\n\r\n    // ================================================================================================================\r\n    // --- Overrides 'IWitnetOracle' ----------------------------------------------------------------------------\r\n\r\n    /// @notice Estimate the minimum reward required for posting a data request.\r\n    /// @dev Underestimates if the size of returned data is greater than `_resultMaxSize`. \r\n    /// @param _gasPrice Expected gas price to pay upon posting the data request.\r\n    /// @param _resultMaxSize Maximum expected size of returned data (in bytes).\r\n    function estimateBaseFee(uint256 _gasPrice, uint16 _resultMaxSize)\r\n        public view \r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return _getCurrentL1Fee(_resultMaxSize) + WitnetOracleTrustableDefault.estimateBaseFee(_gasPrice, _resultMaxSize);\r\n    }\r\n\r\n    /// @notice Estimate the minimum reward required for posting a data request with a callback.\r\n    /// @param _gasPrice Expected gas price to pay upon posting the data request.\r\n    /// @param _callbackGasLimit Maximum gas to be spent when reporting the data request result.\r\n    function estimateBaseFeeWithCallback(uint256 _gasPrice, uint24 _callbackGasLimit)\r\n        public view\r\n        virtual override\r\n        returns (uint256)\r\n    {\r\n        return _getCurrentL1Fee(32) + WitnetOracleTrustableDefault.estimateBaseFeeWithCallback(_gasPrice, _callbackGasLimit);\r\n    }\r\n\r\n    // ================================================================================================================\r\n    // --- Overrides 'IWitnetOracleReporter' --------------------------------------------------------------------------\r\n\r\n    /// @notice Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,\r\n    /// @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \r\n    /// @notice queries providing no actual earnings.\r\n    function estimateReportEarnings(\r\n            uint256[] calldata _witnetQueryIds, \r\n            bytes calldata _reportTxMsgData,\r\n            uint256 _reportTxGasPrice, \r\n            uint256 _nanoWitPrice\r\n        )\r\n        external view\r\n        virtual override\r\n        returns (uint256 _revenues, uint256 _expenses)\r\n    {\r\n        for (uint _ix = 0; _ix < _witnetQueryIds.length; _ix ++) {\r\n            if (WitnetOracleDataLib.seekQueryStatus(_witnetQueryIds[_ix]) == WitnetV2.QueryStatus.Posted) {\r\n                WitnetV2.Request storage __request = WitnetOracleDataLib.seekQueryRequest(_witnetQueryIds[_ix]);\r\n                if (__request.gasCallback > 0) {\r\n                    _expenses += WitnetOracleTrustableDefault.estimateBaseFeeWithCallback(\r\n                        _reportTxGasPrice, \r\n                        __request.gasCallback\r\n                    );\r\n                } else {\r\n                    if (__request.witnetRAD != bytes32(0)) {\r\n                        _expenses += WitnetOracleTrustableDefault.estimateBaseFee(\r\n                            _reportTxGasPrice, \r\n                            registry.lookupRadonRequestResultMaxSize(__request.witnetRAD)\r\n                        );\r\n                    } else {\r\n                        // todo: improve profit estimation accuracy if reporting on deleted query\r\n                        _expenses += WitnetOracleTrustableDefault.estimateBaseFee(\r\n                            _reportTxGasPrice, \r\n                            uint16(0)\r\n                        ); \r\n                    }\r\n                }\r\n                _expenses += __request.witnetSLA.nanoWitTotalFee() * _nanoWitPrice;\r\n                _revenues += __request.evmReward;\r\n            }\r\n        }\r\n        _expenses += __gasPriceOracleL1.getL1Fee(_reportTxMsgData);\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\core\\customs\\WitnetOracleTrustableOvm2.sol",
  "ast": {
    "absolutePath": "project:/contracts/core/customs/WitnetOracleTrustableOvm2.sol",
    "exportedSymbols": {
      "Context": [
        509
      ],
      "ERC165": [
        602
      ],
      "IERC165": [
        614
      ],
      "IERC20": [
        479
      ],
      "IWitnetConsumer": [
        12829
      ],
      "IWitnetOracle": [
        13265
      ],
      "IWitnetOracleEvents": [
        13315
      ],
      "IWitnetOracleReporter": [
        13398
      ],
      "IWitnetRequestBoardAdminACLs": [
        13758
      ],
      "IWitnetRequestBytecodes": [
        13979
      ],
      "IWitnetRequestFactory": [
        14002
      ],
      "Initializable": [
        253
      ],
      "OVM_GasPriceOracle": [
        4333
      ],
      "Ownable": [
        401
      ],
      "Ownable2Step": [
        24094
      ],
      "Payable": [
        24145
      ],
      "Proxiable": [
        24189
      ],
      "ReentrancyGuard": [
        578
      ],
      "Upgradeable": [
        24304
      ],
      "Witnet": [
        17557
      ],
      "WitnetBuffer": [
        19191
      ],
      "WitnetCBOR": [
        20734
      ],
      "WitnetErrorsLib": [
        23206
      ],
      "WitnetOracle": [
        749
      ],
      "WitnetOracleDataLib": [
        12396
      ],
      "WitnetOracleTrustableBase": [
        6817
      ],
      "WitnetOracleTrustableDefault": [
        7013
      ],
      "WitnetOracleTrustableOvm2": [
        4645
      ],
      "WitnetProxy": [
        3700
      ],
      "WitnetRequestBytecodes": [
        849
      ],
      "WitnetRequestFactory": [
        880
      ],
      "WitnetUpgradableBase": [
        3887
      ],
      "WitnetV2": [
        23640
      ]
    },
    "id": 4646,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 4323,
        "literals": [
          "solidity",
          ">=",
          "0.7",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "79:31:32"
      },
      {
        "id": 4324,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "112:33:32"
      },
      {
        "absolutePath": "project:/contracts/core/defaults/WitnetOracleTrustableDefault.sol",
        "file": "../defaults/WitnetOracleTrustableDefault.sol",
        "id": 4325,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 4646,
        "sourceUnit": 7014,
        "src": "149:54:32",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "OVM_GasPriceOracle",
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 4333,
        "linearizedBaseContracts": [
          4333
        ],
        "name": "OVM_GasPriceOracle",
        "nameLocation": "247:18:32",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "functionSelector": "49948e0e",
            "id": 4332,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getL1Fee",
            "nameLocation": "282:8:32",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4327,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "306:5:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4332,
                  "src": "291:20:32",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4326,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "291:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "290:22:32"
            },
            "returnParameters": {
              "id": 4331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4330,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4332,
                  "src": "336:7:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4329,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "336:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "335:9:32"
            },
            "scope": 4333,
            "src": "273:72:32",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 4646,
        "src": "237:111:32",
        "usedErrors": [],
        "usedEvents": []
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 4335,
              "name": "WitnetOracleTrustableDefault",
              "nameLocations": [
                "791:28:32"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 7013,
              "src": "791:28:32"
            },
            "id": 4336,
            "nodeType": "InheritanceSpecifier",
            "src": "791:28:32"
          }
        ],
        "canonicalName": "WitnetOracleTrustableOvm2",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 4334,
          "nodeType": "StructuredDocumentation",
          "src": "352:386:32",
          "text": "@title Witnet Request Board \"trustable\" implementation contract.\n @notice Contract to bridge requests to Witnet Decentralized Oracle Network.\n @dev This contract enables posting requests that Witnet bridges will insert into the Witnet network.\n The result of the requests will be posted back to this contract by the bridge nodes too.\n @author The Witnet Foundation"
        },
        "fullyImplemented": true,
        "id": 4645,
        "linearizedBaseContracts": [
          4645,
          7013,
          6817,
          24145,
          13758,
          13398,
          749,
          13315,
          13265,
          3887,
          578,
          24304,
          24189,
          253,
          24094,
          401,
          509
        ],
        "name": "WitnetOracleTrustableOvm2",
        "nameLocation": "747:25:32",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 4340,
            "libraryName": {
              "id": 4337,
              "name": "WitnetV2",
              "nameLocations": [
                "834:8:32"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 23640,
              "src": "834:8:32"
            },
            "nodeType": "UsingForDirective",
            "src": "828:37:32",
            "typeName": {
              "id": 4339,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4338,
                "name": "WitnetV2.RadonSLA",
                "nameLocations": [
                  "847:8:32",
                  "856:8:32"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 23503,
                "src": "847:17:32"
              },
              "referencedDeclaration": 23503,
              "src": "847:17:32",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                "typeString": "struct WitnetV2.RadonSLA"
              }
            }
          },
          {
            "baseFunctions": [
              6836
            ],
            "body": {
              "id": 4351,
              "nodeType": "Block",
              "src": "943:62:32",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "arguments": [
                        {
                          "id": 4347,
                          "name": "WitnetOracleTrustableOvm2",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4645,
                          "src": "966:25:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableOvm2_$4645_$",
                            "typeString": "type(contract WitnetOracleTrustableOvm2)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableOvm2_$4645_$",
                            "typeString": "type(contract WitnetOracleTrustableOvm2)"
                          }
                        ],
                        "id": 4346,
                        "name": "type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967269,
                        "src": "961:4:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 4348,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "961:31:32",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_magic_meta_type_t_contract$_WitnetOracleTrustableOvm2_$4645",
                        "typeString": "type(contract WitnetOracleTrustableOvm2)"
                      }
                    },
                    "id": 4349,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberLocation": "993:4:32",
                    "memberName": "name",
                    "nodeType": "MemberAccess",
                    "src": "961:36:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 4345,
                  "id": 4350,
                  "nodeType": "Return",
                  "src": "954:43:32"
                }
              ]
            },
            "functionSelector": "bff852fa",
            "id": 4352,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "class",
            "nameLocation": "882:5:32",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4342,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "898:8:32"
            },
            "parameters": {
              "id": 4341,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "887:2:32"
            },
            "returnParameters": {
              "id": 4345,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4344,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4352,
                  "src": "928:13:32",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 4343,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "928:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "927:15:32"
            },
            "scope": 4645,
            "src": "873:132:32",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 4389,
              "nodeType": "Block",
              "src": "1713:102:32",
              "statements": [
                {
                  "expression": {
                    "id": 4387,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 4383,
                      "name": "__gasPriceOracleL1",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4393,
                      "src": "1724:18:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OVM_GasPriceOracle_$4333",
                        "typeString": "contract OVM_GasPriceOracle"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "hexValue": "307834323030303030303030303030303030303030303030303030303030303030303030303030303046",
                          "id": 4385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1764:42:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "value": "0x420000000000000000000000000000000000000F"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 4384,
                        "name": "OVM_GasPriceOracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4333,
                        "src": "1745:18:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_OVM_GasPriceOracle_$4333_$",
                          "typeString": "type(contract OVM_GasPriceOracle)"
                        }
                      },
                      "id": 4386,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1745:62:32",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_OVM_GasPriceOracle_$4333",
                        "typeString": "contract OVM_GasPriceOracle"
                      }
                    },
                    "src": "1724:83:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_OVM_GasPriceOracle_$4333",
                      "typeString": "contract OVM_GasPriceOracle"
                    }
                  },
                  "id": 4388,
                  "nodeType": "ExpressionStatement",
                  "src": "1724:83:32"
                }
              ]
            },
            "id": 4390,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 4373,
                    "name": "_factory",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4355,
                    "src": "1444:8:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                      "typeString": "contract WitnetRequestFactory"
                    }
                  },
                  {
                    "id": 4374,
                    "name": "_registry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4358,
                    "src": "1467:9:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                      "typeString": "contract WitnetRequestBytecodes"
                    }
                  },
                  {
                    "id": 4375,
                    "name": "_upgradable",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4360,
                    "src": "1491:11:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  {
                    "id": 4376,
                    "name": "_versionTag",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4362,
                    "src": "1517:11:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "id": 4377,
                    "name": "_reportResultGasBase",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4364,
                    "src": "1543:20:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "id": 4378,
                    "name": "_reportResultWithCallbackGasBase",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4366,
                    "src": "1578:32:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "id": 4379,
                    "name": "_reportResultWithCallbackRevertGasBase",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4368,
                    "src": "1625:38:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  {
                    "id": 4380,
                    "name": "_sstoreFromZeroGas",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 4370,
                    "src": "1678:18:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 4381,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 4372,
                  "name": "WitnetOracleTrustableDefault",
                  "nameLocations": [
                    "1401:28:32"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 7013,
                  "src": "1401:28:32"
                },
                "nodeType": "ModifierInvocation",
                "src": "1401:306:32"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4371,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4355,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nameLocation": "1060:8:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1039:29:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                    "typeString": "contract WitnetRequestFactory"
                  },
                  "typeName": {
                    "id": 4354,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4353,
                      "name": "WitnetRequestFactory",
                      "nameLocations": [
                        "1039:20:32"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 880,
                      "src": "1039:20:32"
                    },
                    "referencedDeclaration": 880,
                    "src": "1039:20:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestFactory_$880",
                      "typeString": "contract WitnetRequestFactory"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4358,
                  "mutability": "mutable",
                  "name": "_registry",
                  "nameLocation": "1106:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1083:32:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                    "typeString": "contract WitnetRequestBytecodes"
                  },
                  "typeName": {
                    "id": 4357,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 4356,
                      "name": "WitnetRequestBytecodes",
                      "nameLocations": [
                        "1083:22:32"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 849,
                      "src": "1083:22:32"
                    },
                    "referencedDeclaration": 849,
                    "src": "1083:22:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                      "typeString": "contract WitnetRequestBytecodes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4360,
                  "mutability": "mutable",
                  "name": "_upgradable",
                  "nameLocation": "1135:11:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1130:16:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 4359,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1130:4:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4362,
                  "mutability": "mutable",
                  "name": "_versionTag",
                  "nameLocation": "1169:11:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1161:19:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 4361,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1161:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4364,
                  "mutability": "mutable",
                  "name": "_reportResultGasBase",
                  "nameLocation": "1203:20:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1195:28:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4363,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1195:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4366,
                  "mutability": "mutable",
                  "name": "_reportResultWithCallbackGasBase",
                  "nameLocation": "1246:32:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1238:40:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4365,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1238:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4368,
                  "mutability": "mutable",
                  "name": "_reportResultWithCallbackRevertGasBase",
                  "nameLocation": "1301:38:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1293:46:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4367,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1293:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4370,
                  "mutability": "mutable",
                  "name": "_sstoreFromZeroGas",
                  "nameLocation": "1362:18:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4390,
                  "src": "1354:26:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4369,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1354:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1024:367:32"
            },
            "returnParameters": {
              "id": 4382,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1713:0:32"
            },
            "scope": 4645,
            "src": "1013:802:32",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 4393,
            "mutability": "immutable",
            "name": "__gasPriceOracleL1",
            "nameLocation": "1861:18:32",
            "nodeType": "VariableDeclaration",
            "scope": 4645,
            "src": "1823:56:32",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_OVM_GasPriceOracle_$4333",
              "typeString": "contract OVM_GasPriceOracle"
            },
            "typeName": {
              "id": 4392,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 4391,
                "name": "OVM_GasPriceOracle",
                "nameLocations": [
                  "1823:18:32"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 4333,
                "src": "1823:18:32"
              },
              "referencedDeclaration": 4333,
              "src": "1823:18:32",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_OVM_GasPriceOracle_$4333",
                "typeString": "contract OVM_GasPriceOracle"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4411,
              "nodeType": "Block",
              "src": "1977:707:32",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "06eb2c42000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000ffffffffff00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000ff",
                            "id": 4404,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "hexString",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2072:527:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_a3d2fbc1dacd26016777974249679186cfba06247b2ee668f7780fc4977b2c2e",
                              "typeString": "literal_string hex\"06eb2c42000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000ffffffffff00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000ff\""
                            }
                          },
                          {
                            "arguments": [
                              {
                                "id": 4406,
                                "name": "_resultMaxSize",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4395,
                                "src": "2635:14:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint16",
                                  "typeString": "uint16"
                                }
                              ],
                              "id": 4405,
                              "name": "_resultMaxBuffer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4474,
                              "src": "2618:16:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bytes_memory_ptr_$",
                                "typeString": "function (uint16) pure returns (bytes memory)"
                              }
                            },
                            "id": 4407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2618:32:32",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_stringliteral_a3d2fbc1dacd26016777974249679186cfba06247b2ee668f7780fc4977b2c2e",
                              "typeString": "literal_string hex\"06eb2c42000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000ffffffffff00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000ff\""
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "expression": {
                            "id": 4402,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "2037:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4403,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "2041:12:32",
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "2037:16:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4408,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2037:628:32",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 4400,
                        "name": "__gasPriceOracleL1",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4393,
                        "src": "1995:18:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_OVM_GasPriceOracle_$4333",
                          "typeString": "contract OVM_GasPriceOracle"
                        }
                      },
                      "id": 4401,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2014:8:32",
                      "memberName": "getL1Fee",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4332,
                      "src": "1995:27:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (bytes memory) view external returns (uint256)"
                      }
                    },
                    "id": 4409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1995:681:32",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4399,
                  "id": 4410,
                  "nodeType": "Return",
                  "src": "1988:688:32"
                }
              ]
            },
            "id": 4412,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getCurrentL1Fee",
            "nameLocation": "1897:16:32",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4396,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4395,
                  "mutability": "mutable",
                  "name": "_resultMaxSize",
                  "nameLocation": "1921:14:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4412,
                  "src": "1914:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 4394,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1914:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1913:23:32"
            },
            "returnParameters": {
              "id": 4399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4398,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4412,
                  "src": "1968:7:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4397,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1968:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1967:9:32"
            },
            "scope": 4645,
            "src": "1888:796:32",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4473,
              "nodeType": "Block",
              "src": "2777:385:32",
              "statements": [
                {
                  "id": 4472,
                  "nodeType": "UncheckedBlock",
                  "src": "2788:367:32",
                  "statements": [
                    {
                      "assignments": [
                        4423
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 4423,
                          "mutability": "mutable",
                          "name": "_buffer",
                          "nameLocation": "2830:7:32",
                          "nodeType": "VariableDeclaration",
                          "scope": 4472,
                          "src": "2813:24:32",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[]"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 4421,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2813:7:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4422,
                            "nodeType": "ArrayTypeName",
                            "src": "2813:9:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[]"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 4431,
                      "initialValue": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            },
                            "id": 4429,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 4427,
                              "name": "_resultMaxSize",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4414,
                              "src": "2854:14:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "hexValue": "3332",
                              "id": 4428,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2871:2:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_32_by_1",
                                "typeString": "int_const 32"
                              },
                              "value": "32"
                            },
                            "src": "2854:19:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint16",
                              "typeString": "uint16"
                            }
                          ],
                          "id": 4426,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "2840:13:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (uint256[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 4424,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2844:7:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4425,
                            "nodeType": "ArrayTypeName",
                            "src": "2844:9:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                              "typeString": "uint256[]"
                            }
                          }
                        },
                        "id": 4430,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2840:34:32",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "2813:61:32"
                    },
                    {
                      "body": {
                        "id": 4453,
                        "nodeType": "Block",
                        "src": "2938:67:32",
                        "statements": [
                          {
                            "expression": {
                              "id": 4451,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "baseExpression": {
                                  "id": 4443,
                                  "name": "_buffer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4423,
                                  "src": "2957:7:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                    "typeString": "uint256[] memory"
                                  }
                                },
                                "id": 4445,
                                "indexExpression": {
                                  "id": 4444,
                                  "name": "_ix",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4433,
                                  "src": "2965:3:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "2957:12:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "expression": {
                                  "arguments": [
                                    {
                                      "id": 4448,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "2977:7:32",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 4447,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2977:7:32",
                                        "typeDescriptions": {}
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      }
                                    ],
                                    "id": 4446,
                                    "name": "type",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4294967269,
                                    "src": "2972:4:32",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                      "typeString": "function () pure"
                                    }
                                  },
                                  "id": 4449,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2972:13:32",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_meta_type_t_uint256",
                                    "typeString": "type(uint256)"
                                  }
                                },
                                "id": 4450,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "2986:3:32",
                                "memberName": "max",
                                "nodeType": "MemberAccess",
                                "src": "2972:17:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "2957:32:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 4452,
                            "nodeType": "ExpressionStatement",
                            "src": "2957:32:32"
                          }
                        ]
                      },
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 4439,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 4436,
                          "name": "_ix",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4433,
                          "src": "2908:3:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "id": 4437,
                            "name": "_buffer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4423,
                            "src": "2914:7:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "id": 4438,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2922:6:32",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "2914:14:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2908:20:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 4454,
                      "initializationExpression": {
                        "assignments": [
                          4433
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 4433,
                            "mutability": "mutable",
                            "name": "_ix",
                            "nameLocation": "2899:3:32",
                            "nodeType": "VariableDeclaration",
                            "scope": 4454,
                            "src": "2894:8:32",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 4432,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "2894:4:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 4435,
                        "initialValue": {
                          "hexValue": "30",
                          "id": 4434,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2905:1:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2894:12:32"
                      },
                      "isSimpleCounterLoop": true,
                      "loopExpression": {
                        "expression": {
                          "id": 4441,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "2930:6:32",
                          "subExpression": {
                            "id": 4440,
                            "name": "_ix",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4433,
                            "src": "2930:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4442,
                        "nodeType": "ExpressionStatement",
                        "src": "2930:6:32"
                      },
                      "nodeType": "ForStatement",
                      "src": "2889:116:32"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "id": 4457,
                            "name": "_buffer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4423,
                            "src": "3061:7:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 4468,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "components": [
                                    {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 4465,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "hexValue": "31",
                                        "id": 4460,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "3096:1:32",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "<<",
                                      "rightExpression": {
                                        "components": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_uint16",
                                              "typeString": "uint16"
                                            },
                                            "id": 4463,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "id": 4461,
                                              "name": "_resultMaxSize",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4414,
                                              "src": "3102:14:32",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint16",
                                                "typeString": "uint16"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "%",
                                            "rightExpression": {
                                              "hexValue": "3332",
                                              "id": 4462,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "3119:2:32",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_32_by_1",
                                                "typeString": "int_const 32"
                                              },
                                              "value": "32"
                                            },
                                            "src": "3102:19:32",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint16",
                                              "typeString": "uint16"
                                            }
                                          }
                                        ],
                                        "id": 4464,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "3101:21:32",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint16",
                                          "typeString": "uint16"
                                        }
                                      },
                                      "src": "3096:26:32",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 4466,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "3095:28:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "hexValue": "31",
                                  "id": 4467,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3126:1:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "3095:32:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 4459,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3087:7:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 4458,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3087:7:32",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 4469,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3087:41:32",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "id": 4455,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967295,
                            "src": "3026:3:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 4456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "3030:12:32",
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "src": "3026:16:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 4470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3026:117:32",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "functionReturnParameters": 4418,
                      "id": 4471,
                      "nodeType": "Return",
                      "src": "3019:124:32"
                    }
                  ]
                }
              ]
            },
            "id": 4474,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_resultMaxBuffer",
            "nameLocation": "2701:16:32",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4415,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4414,
                  "mutability": "mutable",
                  "name": "_resultMaxSize",
                  "nameLocation": "2725:14:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4474,
                  "src": "2718:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 4413,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "2718:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2717:23:32"
            },
            "returnParameters": {
              "id": 4418,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4417,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4474,
                  "src": "2763:12:32",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4416,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2763:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2762:14:32"
            },
            "scope": 4645,
            "src": "2692:470:32",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "baseFunctions": [
              6926
            ],
            "body": {
              "id": 4495,
              "nodeType": "Block",
              "src": "3895:132:32",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 4486,
                          "name": "_resultMaxSize",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4479,
                          "src": "3930:14:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        ],
                        "id": 4485,
                        "name": "_getCurrentL1Fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4412,
                        "src": "3913:16:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint16_$returns$_t_uint256_$",
                          "typeString": "function (uint16) view returns (uint256)"
                        }
                      },
                      "id": 4487,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3913:32:32",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 4490,
                          "name": "_gasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4477,
                          "src": "3993:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 4491,
                          "name": "_resultMaxSize",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4479,
                          "src": "4004:14:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        ],
                        "expression": {
                          "id": 4488,
                          "name": "WitnetOracleTrustableDefault",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7013,
                          "src": "3948:28:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableDefault_$7013_$",
                            "typeString": "type(contract WitnetOracleTrustableDefault)"
                          }
                        },
                        "id": 4489,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3977:15:32",
                        "memberName": "estimateBaseFee",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6926,
                        "src": "3948:44:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint16_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint16) view returns (uint256)"
                        }
                      },
                      "id": 4492,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3948:71:32",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3913:106:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4484,
                  "id": 4494,
                  "nodeType": "Return",
                  "src": "3906:113:32"
                }
              ]
            },
            "documentation": {
              "id": 4475,
              "nodeType": "StructuredDocumentation",
              "src": "3408:334:32",
              "text": "@notice Estimate the minimum reward required for posting a data request.\n @dev Underestimates if the size of returned data is greater than `_resultMaxSize`. \n @param _gasPrice Expected gas price to pay upon posting the data request.\n @param _resultMaxSize Maximum expected size of returned data (in bytes)."
            },
            "functionSelector": "7bd88218",
            "id": 4496,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateBaseFee",
            "nameLocation": "3757:15:32",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4481,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3854:8:32"
            },
            "parameters": {
              "id": 4480,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4477,
                  "mutability": "mutable",
                  "name": "_gasPrice",
                  "nameLocation": "3781:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4496,
                  "src": "3773:17:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4476,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3773:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4479,
                  "mutability": "mutable",
                  "name": "_resultMaxSize",
                  "nameLocation": "3799:14:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4496,
                  "src": "3792:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 4478,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3792:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3772:42:32"
            },
            "returnParameters": {
              "id": 4484,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4483,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4496,
                  "src": "3881:7:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4482,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3881:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3880:9:32"
            },
            "scope": 4645,
            "src": "3748:279:32",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              6972
            ],
            "body": {
              "id": 4517,
              "nodeType": "Block",
              "src": "4475:135:32",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "hexValue": "3332",
                          "id": 4508,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4510:2:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_32_by_1",
                            "typeString": "int_const 32"
                          },
                          "value": "32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_32_by_1",
                            "typeString": "int_const 32"
                          }
                        ],
                        "id": 4507,
                        "name": "_getCurrentL1Fee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4412,
                        "src": "4493:16:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint16_$returns$_t_uint256_$",
                          "typeString": "function (uint16) view returns (uint256)"
                        }
                      },
                      "id": 4509,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4493:20:32",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 4512,
                          "name": "_gasPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4499,
                          "src": "4573:9:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 4513,
                          "name": "_callbackGasLimit",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4501,
                          "src": "4584:17:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        ],
                        "expression": {
                          "id": 4510,
                          "name": "WitnetOracleTrustableDefault",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7013,
                          "src": "4516:28:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableDefault_$7013_$",
                            "typeString": "type(contract WitnetOracleTrustableDefault)"
                          }
                        },
                        "id": 4511,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "4545:27:32",
                        "memberName": "estimateBaseFeeWithCallback",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6972,
                        "src": "4516:56:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint24_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint24) view returns (uint256)"
                        }
                      },
                      "id": 4514,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4516:86:32",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4493:109:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 4506,
                  "id": 4516,
                  "nodeType": "Return",
                  "src": "4486:116:32"
                }
              ]
            },
            "documentation": {
              "id": 4497,
              "nodeType": "StructuredDocumentation",
              "src": "4035:273:32",
              "text": "@notice Estimate the minimum reward required for posting a data request with a callback.\n @param _gasPrice Expected gas price to pay upon posting the data request.\n @param _callbackGasLimit Maximum gas to be spent when reporting the data request result."
            },
            "functionSelector": "05e742ef",
            "id": 4518,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateBaseFeeWithCallback",
            "nameLocation": "4323:27:32",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4503,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4434:8:32"
            },
            "parameters": {
              "id": 4502,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4499,
                  "mutability": "mutable",
                  "name": "_gasPrice",
                  "nameLocation": "4359:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4518,
                  "src": "4351:17:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4498,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4351:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4501,
                  "mutability": "mutable",
                  "name": "_callbackGasLimit",
                  "nameLocation": "4377:17:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4518,
                  "src": "4370:24:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 4500,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "4370:6:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4350:45:32"
            },
            "returnParameters": {
              "id": 4506,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4505,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 4518,
                  "src": "4461:7:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4504,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4461:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4460:9:32"
            },
            "scope": 4645,
            "src": "4314:296:32",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              6003
            ],
            "body": {
              "id": 4643,
              "nodeType": "Block",
              "src": "5496:1500:32",
              "statements": [
                {
                  "body": {
                    "id": 4634,
                    "nodeType": "Block",
                    "src": "5564:1356:32",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_enum$_QueryStatus_$23461",
                            "typeString": "enum WitnetV2.QueryStatus"
                          },
                          "id": 4556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 4549,
                                  "name": "_witnetQueryIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4522,
                                  "src": "5619:15:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 4551,
                                "indexExpression": {
                                  "id": 4550,
                                  "name": "_ix",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4537,
                                  "src": "5635:3:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "5619:20:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "id": 4547,
                                "name": "WitnetOracleDataLib",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12396,
                                "src": "5583:19:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                  "typeString": "type(library WitnetOracleDataLib)"
                                }
                              },
                              "id": 4548,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5603:15:32",
                              "memberName": "seekQueryStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 12172,
                              "src": "5583:35:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_enum$_QueryStatus_$23461_$",
                                "typeString": "function (uint256) view returns (enum WitnetV2.QueryStatus)"
                              }
                            },
                            "id": 4552,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5583:57:32",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "expression": {
                                "id": 4553,
                                "name": "WitnetV2",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23640,
                                "src": "5644:8:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_WitnetV2_$23640_$",
                                  "typeString": "type(library WitnetV2)"
                                }
                              },
                              "id": 4554,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5653:11:32",
                              "memberName": "QueryStatus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 23461,
                              "src": "5644:20:32",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_QueryStatus_$23461_$",
                                "typeString": "type(enum WitnetV2.QueryStatus)"
                              }
                            },
                            "id": 4555,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "5665:6:32",
                            "memberName": "Posted",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23458,
                            "src": "5644:27:32",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_QueryStatus_$23461",
                              "typeString": "enum WitnetV2.QueryStatus"
                            }
                          },
                          "src": "5583:88:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 4633,
                        "nodeType": "IfStatement",
                        "src": "5579:1330:32",
                        "trueBody": {
                          "id": 4632,
                          "nodeType": "Block",
                          "src": "5673:1236:32",
                          "statements": [
                            {
                              "assignments": [
                                4561
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 4561,
                                  "mutability": "mutable",
                                  "name": "__request",
                                  "nameLocation": "5717:9:32",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 4632,
                                  "src": "5692:34:32",
                                  "stateVariable": false,
                                  "storageLocation": "storage",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                    "typeString": "struct WitnetV2.Request"
                                  },
                                  "typeName": {
                                    "id": 4560,
                                    "nodeType": "UserDefinedTypeName",
                                    "pathNode": {
                                      "id": 4559,
                                      "name": "WitnetV2.Request",
                                      "nameLocations": [
                                        "5692:8:32",
                                        "5701:7:32"
                                      ],
                                      "nodeType": "IdentifierPath",
                                      "referencedDeclaration": 23476,
                                      "src": "5692:16:32"
                                    },
                                    "referencedDeclaration": 23476,
                                    "src": "5692:16:32",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                      "typeString": "struct WitnetV2.Request"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 4568,
                              "initialValue": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 4564,
                                      "name": "_witnetQueryIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4522,
                                      "src": "5766:15:32",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 4566,
                                    "indexExpression": {
                                      "id": 4565,
                                      "name": "_ix",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4537,
                                      "src": "5782:3:32",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5766:20:32",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "id": 4562,
                                    "name": "WitnetOracleDataLib",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12396,
                                    "src": "5729:19:32",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_WitnetOracleDataLib_$12396_$",
                                      "typeString": "type(library WitnetOracleDataLib)"
                                    }
                                  },
                                  "id": 4563,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "5749:16:32",
                                  "memberName": "seekQueryRequest",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 12092,
                                  "src": "5729:36:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_Request_$23476_storage_ptr_$",
                                    "typeString": "function (uint256) view returns (struct WitnetV2.Request storage pointer)"
                                  }
                                },
                                "id": 4567,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5729:58:32",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                  "typeString": "struct WitnetV2.Request storage pointer"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "5692:95:32"
                            },
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint24",
                                  "typeString": "uint24"
                                },
                                "id": 4572,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 4569,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4561,
                                    "src": "5810:9:32",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                      "typeString": "struct WitnetV2.Request storage pointer"
                                    }
                                  },
                                  "id": 4570,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "5820:11:32",
                                  "memberName": "gasCallback",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 23466,
                                  "src": "5810:21:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint24",
                                    "typeString": "uint24"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 4571,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5834:1:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "5810:25:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "id": 4616,
                                "nodeType": "Block",
                                "src": "6071:687:32",
                                "statements": [
                                  {
                                    "condition": {
                                      "commonType": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      "id": 4589,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 4583,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4561,
                                          "src": "6098:9:32",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                            "typeString": "struct WitnetV2.Request storage pointer"
                                          }
                                        },
                                        "id": 4584,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "6108:9:32",
                                        "memberName": "witnetRAD",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23472,
                                        "src": "6098:19:32",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "!=",
                                      "rightExpression": {
                                        "arguments": [
                                          {
                                            "hexValue": "30",
                                            "id": 4587,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "6129:1:32",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 4586,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "6121:7:32",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                            "typeString": "type(bytes32)"
                                          },
                                          "typeName": {
                                            "id": 4585,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "6121:7:32",
                                            "typeDescriptions": {}
                                          }
                                        },
                                        "id": 4588,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6121:10:32",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      },
                                      "src": "6098:33:32",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseBody": {
                                      "id": 4614,
                                      "nodeType": "Block",
                                      "src": "6415:324:32",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 4612,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                              "id": 4603,
                                              "name": "_expenses",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4534,
                                              "src": "6541:9:32",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "+=",
                                            "rightHandSide": {
                                              "arguments": [
                                                {
                                                  "id": 4606,
                                                  "name": "_reportTxGasPrice",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 4526,
                                                  "src": "6629:17:32",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                },
                                                {
                                                  "arguments": [
                                                    {
                                                      "hexValue": "30",
                                                      "id": 4609,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "kind": "number",
                                                      "lValueRequested": false,
                                                      "nodeType": "Literal",
                                                      "src": "6685:1:32",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                      },
                                                      "value": "0"
                                                    }
                                                  ],
                                                  "expression": {
                                                    "argumentTypes": [
                                                      {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                      }
                                                    ],
                                                    "id": 4608,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "6678:6:32",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_type$_t_uint16_$",
                                                      "typeString": "type(uint16)"
                                                    },
                                                    "typeName": {
                                                      "id": 4607,
                                                      "name": "uint16",
                                                      "nodeType": "ElementaryTypeName",
                                                      "src": "6678:6:32",
                                                      "typeDescriptions": {}
                                                    }
                                                  },
                                                  "id": 4610,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "kind": "typeConversion",
                                                  "lValueRequested": false,
                                                  "nameLocations": [],
                                                  "names": [],
                                                  "nodeType": "FunctionCall",
                                                  "src": "6678:9:32",
                                                  "tryCall": false,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint16",
                                                    "typeString": "uint16"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  {
                                                    "typeIdentifier": "t_uint16",
                                                    "typeString": "uint16"
                                                  }
                                                ],
                                                "expression": {
                                                  "id": 4604,
                                                  "name": "WitnetOracleTrustableDefault",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 7013,
                                                  "src": "6554:28:32",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableDefault_$7013_$",
                                                    "typeString": "type(contract WitnetOracleTrustableDefault)"
                                                  }
                                                },
                                                "id": 4605,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberLocation": "6583:15:32",
                                                "memberName": "estimateBaseFee",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 6926,
                                                "src": "6554:44:32",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint16_$returns$_t_uint256_$",
                                                  "typeString": "function (uint256,uint16) view returns (uint256)"
                                                }
                                              },
                                              "id": 4611,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "6554:160:32",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "src": "6541:173:32",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 4613,
                                          "nodeType": "ExpressionStatement",
                                          "src": "6541:173:32"
                                        }
                                      ]
                                    },
                                    "id": 4615,
                                    "nodeType": "IfStatement",
                                    "src": "6094:645:32",
                                    "trueBody": {
                                      "id": 4602,
                                      "nodeType": "Block",
                                      "src": "6133:276:32",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 4600,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                              "id": 4590,
                                              "name": "_expenses",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4534,
                                              "src": "6160:9:32",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "+=",
                                            "rightHandSide": {
                                              "arguments": [
                                                {
                                                  "id": 4593,
                                                  "name": "_reportTxGasPrice",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 4526,
                                                  "src": "6248:17:32",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  }
                                                },
                                                {
                                                  "arguments": [
                                                    {
                                                      "expression": {
                                                        "id": 4596,
                                                        "name": "__request",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 4561,
                                                        "src": "6338:9:32",
                                                        "typeDescriptions": {
                                                          "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                                          "typeString": "struct WitnetV2.Request storage pointer"
                                                        }
                                                      },
                                                      "id": 4597,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "memberLocation": "6348:9:32",
                                                      "memberName": "witnetRAD",
                                                      "nodeType": "MemberAccess",
                                                      "referencedDeclaration": 23472,
                                                      "src": "6338:19:32",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                      }
                                                    }
                                                  ],
                                                  "expression": {
                                                    "argumentTypes": [
                                                      {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                      }
                                                    ],
                                                    "expression": {
                                                      "id": 4594,
                                                      "name": "registry",
                                                      "nodeType": "Identifier",
                                                      "overloadedDeclarations": [],
                                                      "referencedDeclaration": 4894,
                                                      "src": "6297:8:32",
                                                      "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                                        "typeString": "contract WitnetRequestBytecodes"
                                                      }
                                                    },
                                                    "id": 4595,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberLocation": "6306:31:32",
                                                    "memberName": "lookupRadonRequestResultMaxSize",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 13897,
                                                    "src": "6297:40:32",
                                                    "typeDescriptions": {
                                                      "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint16_$",
                                                      "typeString": "function (bytes32) view external returns (uint16)"
                                                    }
                                                  },
                                                  "id": 4598,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "kind": "functionCall",
                                                  "lValueRequested": false,
                                                  "nameLocations": [],
                                                  "names": [],
                                                  "nodeType": "FunctionCall",
                                                  "src": "6297:61:32",
                                                  "tryCall": false,
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_uint16",
                                                    "typeString": "uint16"
                                                  }
                                                }
                                              ],
                                              "expression": {
                                                "argumentTypes": [
                                                  {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  {
                                                    "typeIdentifier": "t_uint16",
                                                    "typeString": "uint16"
                                                  }
                                                ],
                                                "expression": {
                                                  "id": 4591,
                                                  "name": "WitnetOracleTrustableDefault",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 7013,
                                                  "src": "6173:28:32",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableDefault_$7013_$",
                                                    "typeString": "type(contract WitnetOracleTrustableDefault)"
                                                  }
                                                },
                                                "id": 4592,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberLocation": "6202:15:32",
                                                "memberName": "estimateBaseFee",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 6926,
                                                "src": "6173:44:32",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint16_$returns$_t_uint256_$",
                                                  "typeString": "function (uint256,uint16) view returns (uint256)"
                                                }
                                              },
                                              "id": 4599,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "kind": "functionCall",
                                              "lValueRequested": false,
                                              "nameLocations": [],
                                              "names": [],
                                              "nodeType": "FunctionCall",
                                              "src": "6173:212:32",
                                              "tryCall": false,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "src": "6160:225:32",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 4601,
                                          "nodeType": "ExpressionStatement",
                                          "src": "6160:225:32"
                                        }
                                      ]
                                    }
                                  }
                                ]
                              },
                              "id": 4617,
                              "nodeType": "IfStatement",
                              "src": "5806:952:32",
                              "trueBody": {
                                "id": 4582,
                                "nodeType": "Block",
                                "src": "5837:228:32",
                                "statements": [
                                  {
                                    "expression": {
                                      "id": 4580,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "id": 4573,
                                        "name": "_expenses",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 4534,
                                        "src": "5860:9:32",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "arguments": [
                                          {
                                            "id": 4576,
                                            "name": "_reportTxGasPrice",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 4526,
                                            "src": "5956:17:32",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "expression": {
                                              "id": 4577,
                                              "name": "__request",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 4561,
                                              "src": "6001:9:32",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                                "typeString": "struct WitnetV2.Request storage pointer"
                                              }
                                            },
                                            "id": 4578,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "6011:11:32",
                                            "memberName": "gasCallback",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 23466,
                                            "src": "6001:21:32",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint24",
                                              "typeString": "uint24"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint24",
                                              "typeString": "uint24"
                                            }
                                          ],
                                          "expression": {
                                            "id": 4574,
                                            "name": "WitnetOracleTrustableDefault",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7013,
                                            "src": "5873:28:32",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_type$_t_contract$_WitnetOracleTrustableDefault_$7013_$",
                                              "typeString": "type(contract WitnetOracleTrustableDefault)"
                                            }
                                          },
                                          "id": 4575,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberLocation": "5902:27:32",
                                          "memberName": "estimateBaseFeeWithCallback",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 6972,
                                          "src": "5873:56:32",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint24_$returns$_t_uint256_$",
                                            "typeString": "function (uint256,uint24) view returns (uint256)"
                                          }
                                        },
                                        "id": 4579,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5873:172:32",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "5860:185:32",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 4581,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5860:185:32"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "id": 4625,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 4618,
                                  "name": "_expenses",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4534,
                                  "src": "6776:9:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 4624,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "expression": {
                                        "expression": {
                                          "id": 4619,
                                          "name": "__request",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 4561,
                                          "src": "6789:9:32",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                            "typeString": "struct WitnetV2.Request storage pointer"
                                          }
                                        },
                                        "id": 4620,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "6799:9:32",
                                        "memberName": "witnetSLA",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 23475,
                                        "src": "6789:19:32",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                                          "typeString": "struct WitnetV2.RadonSLA storage ref"
                                        }
                                      },
                                      "id": 4621,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "6809:15:32",
                                      "memberName": "nanoWitTotalFee",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 23594,
                                      "src": "6789:35:32",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$_t_struct$_RadonSLA_$23503_storage_ptr_$returns$_t_uint64_$attached_to$_t_struct$_RadonSLA_$23503_storage_ptr_$",
                                        "typeString": "function (struct WitnetV2.RadonSLA storage pointer) view returns (uint64)"
                                      }
                                    },
                                    "id": 4622,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "6789:37:32",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint64",
                                      "typeString": "uint64"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "*",
                                  "rightExpression": {
                                    "id": 4623,
                                    "name": "_nanoWitPrice",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4528,
                                    "src": "6829:13:32",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "6789:53:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6776:66:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4626,
                              "nodeType": "ExpressionStatement",
                              "src": "6776:66:32"
                            },
                            {
                              "expression": {
                                "id": 4630,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 4627,
                                  "name": "_revenues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4532,
                                  "src": "6861:9:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "expression": {
                                    "id": 4628,
                                    "name": "__request",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 4561,
                                    "src": "6874:9:32",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Request_$23476_storage_ptr",
                                      "typeString": "struct WitnetV2.Request storage pointer"
                                    }
                                  },
                                  "id": 4629,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "6884:9:32",
                                  "memberName": "evmReward",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 23468,
                                  "src": "6874:19:32",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint72",
                                    "typeString": "uint72"
                                  }
                                },
                                "src": "6861:32:32",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 4631,
                              "nodeType": "ExpressionStatement",
                              "src": "6861:32:32"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4543,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 4540,
                      "name": "_ix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4537,
                      "src": "5526:3:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 4541,
                        "name": "_witnetQueryIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4522,
                        "src": "5532:15:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 4542,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5548:6:32",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5532:22:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5526:28:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4635,
                  "initializationExpression": {
                    "assignments": [
                      4537
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 4537,
                        "mutability": "mutable",
                        "name": "_ix",
                        "nameLocation": "5517:3:32",
                        "nodeType": "VariableDeclaration",
                        "scope": 4635,
                        "src": "5512:8:32",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4536,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5512:4:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 4539,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 4538,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5523:1:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5512:12:32"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 4545,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5556:6:32",
                      "subExpression": {
                        "id": 4544,
                        "name": "_ix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4537,
                        "src": "5556:3:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4546,
                    "nodeType": "ExpressionStatement",
                    "src": "5556:6:32"
                  },
                  "nodeType": "ForStatement",
                  "src": "5507:1413:32"
                },
                {
                  "expression": {
                    "id": 4641,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 4636,
                      "name": "_expenses",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4534,
                      "src": "6930:9:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 4639,
                          "name": "_reportTxMsgData",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4524,
                          "src": "6971:16:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        ],
                        "expression": {
                          "id": 4637,
                          "name": "__gasPriceOracleL1",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4393,
                          "src": "6943:18:32",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_OVM_GasPriceOracle_$4333",
                            "typeString": "contract OVM_GasPriceOracle"
                          }
                        },
                        "id": 4638,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6962:8:32",
                        "memberName": "getL1Fee",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 4332,
                        "src": "6943:27:32",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes_memory_ptr_$returns$_t_uint256_$",
                          "typeString": "function (bytes memory) view external returns (uint256)"
                        }
                      },
                      "id": 4640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6943:45:32",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6930:58:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 4642,
                  "nodeType": "ExpressionStatement",
                  "src": "6930:58:32"
                }
              ]
            },
            "documentation": {
              "id": 4519,
              "nodeType": "StructuredDocumentation",
              "src": "4862:302:32",
              "text": "@notice Estimates the actual earnings (or loss), in WEI, that a reporter would get by reporting result to given query,\n @notice based on the gas price of the calling transaction. Data requesters should consider upgrading the reward on \n @notice queries providing no actual earnings."
            },
            "functionSelector": "93d5185c",
            "id": 4644,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "estimateReportEarnings",
            "nameLocation": "5179:22:32",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 4530,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5426:8:32"
            },
            "parameters": {
              "id": 4529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4522,
                  "mutability": "mutable",
                  "name": "_witnetQueryIds",
                  "nameLocation": "5235:15:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4644,
                  "src": "5216:34:32",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 4520,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5216:7:32",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 4521,
                    "nodeType": "ArrayTypeName",
                    "src": "5216:9:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4524,
                  "mutability": "mutable",
                  "name": "_reportTxMsgData",
                  "nameLocation": "5281:16:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4644,
                  "src": "5266:31:32",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 4523,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5266:5:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4526,
                  "mutability": "mutable",
                  "name": "_reportTxGasPrice",
                  "nameLocation": "5320:17:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4644,
                  "src": "5312:25:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4525,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5312:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4528,
                  "mutability": "mutable",
                  "name": "_nanoWitPrice",
                  "nameLocation": "5361:13:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4644,
                  "src": "5353:21:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4527,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5353:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5201:184:32"
            },
            "returnParameters": {
              "id": 4535,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4532,
                  "mutability": "mutable",
                  "name": "_revenues",
                  "nameLocation": "5461:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4644,
                  "src": "5453:17:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4531,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5453:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 4534,
                  "mutability": "mutable",
                  "name": "_expenses",
                  "nameLocation": "5480:9:32",
                  "nodeType": "VariableDeclaration",
                  "scope": 4644,
                  "src": "5472:17:32",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 4533,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5472:7:32",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5452:38:32"
            },
            "scope": 4645,
            "src": "5170:1826:32",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 4646,
        "src": "738:6261:32",
        "usedErrors": [
          16,
          19,
          267,
          272,
          523,
          17562,
          17568,
          19262,
          19268,
          19276
        ],
        "usedEvents": [
          24,
          278,
          13278,
          13285,
          13294,
          13307,
          13314,
          13397,
          13730,
          13735,
          24023,
          24106,
          24112,
          24232
        ]
      }
    ],
    "src": "79:6922:32"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.25+commit.b61c2a91.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2024-12-05T09:36:04.253Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}