{
  "contractName": "WitnetRandomnessRequestConsumer",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "committeeSize",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "witnessingFeeNanoWit",
              "type": "uint64"
            }
          ],
          "indexed": false,
          "internalType": "struct WitnetV2.RadonSLA",
          "name": "witnetSLA",
          "type": "tuple"
        }
      ],
      "name": "WitnetQuery",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryResponse",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackGas",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryResponseDelivered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "resultCborBytes",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmGasPrice",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmCallbackActualGas",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "evmCallbackRevertReason",
          "type": "string"
        }
      ],
      "name": "WitnetQueryResponseDeliveryFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "evmReward",
          "type": "uint256"
        }
      ],
      "name": "WitnetQueryRewardUpgraded",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "witnetQueryId",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "witnetResultTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "bytes32",
          "name": "witnetResultTallyHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "witnetEvmFinalityBlock",
          "type": "uint256"
        },
        {
          "internalType": "enum Witnet.ResultErrorCodes",
          "name": "errorCode",
          "type": "uint8"
        },
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "cursor",
                  "type": "uint256"
                }
              ],
              "internalType": "struct WitnetBuffer.Buffer",
              "name": "buffer",
              "type": "tuple"
            },
            {
              "internalType": "uint8",
              "name": "initialByte",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "majorType",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "additionalInformation",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "len",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "tag",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetCBOR.CBOR",
          "name": "errorArgs",
          "type": "tuple"
        }
      ],
      "name": "reportWitnetQueryError",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "witnetQueryId",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "witnetResultTimestamp",
          "type": "uint64"
        },
        {
          "internalType": "bytes32",
          "name": "witnetResultTallyHash",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "witnetEvmFinalityBlock",
          "type": "uint256"
        },
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "cursor",
                  "type": "uint256"
                }
              ],
              "internalType": "struct WitnetBuffer.Buffer",
              "name": "buffer",
              "type": "tuple"
            },
            {
              "internalType": "uint8",
              "name": "initialByte",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "majorType",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "additionalInformation",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "len",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "tag",
              "type": "uint64"
            }
          ],
          "internalType": "struct WitnetCBOR.CBOR",
          "name": "witnetResultCborValue",
          "type": "tuple"
        }
      ],
      "name": "reportWitnetQueryResult",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        }
      ],
      "name": "reportableFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "witnet",
      "outputs": [
        {
          "internalType": "contract WitnetOracle",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"committeeSize\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"witnessingFeeNanoWit\",\"type\":\"uint64\"}],\"indexed\":false,\"internalType\":\"struct WitnetV2.RadonSLA\",\"name\":\"witnetSLA\",\"type\":\"tuple\"}],\"name\":\"WitnetQuery\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryResponse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackGas\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryResponseDelivered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmCallbackActualGas\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"evmCallbackRevertReason\",\"type\":\"string\"}],\"name\":\"WitnetQueryResponseDeliveryFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"evmReward\",\"type\":\"uint256\"}],\"name\":\"WitnetQueryRewardUpgraded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"witnetQueryId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"witnetResultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"witnetResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"witnetEvmFinalityBlock\",\"type\":\"uint256\"},{\"internalType\":\"enum Witnet.ResultErrorCodes\",\"name\":\"errorCode\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"errorArgs\",\"type\":\"tuple\"}],\"name\":\"reportWitnetQueryError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"witnetQueryId\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"witnetResultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"witnetResultTallyHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"witnetEvmFinalityBlock\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"witnetResultCborValue\",\"type\":\"tuple\"}],\"name\":\"reportWitnetQueryResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"}],\"name\":\"reportableFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witnet\",\"outputs\":[{\"internalType\":\"contract WitnetOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"_baseFeeOverheadPercentage\":\"Percentage over base fee to pay as on every data request.\",\"_callbackGasLimit\":\"Maximum gas to be spent by the IWitnetConsumer's callback methods.\",\"_wrb\":\"Address of the WitnetOracle contract.\"}},\"reportWitnetQueryError(uint256,uint64,bytes32,uint256,uint8,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))\":{\"details\":\"It should revert if called from any other address different to the WitnetOracle being usedby the WitnetConsumer contract. \",\"params\":{\"errorArgs\":\"Error arguments, if any. An empty buffer is to be passed if no error arguments apply.\",\"errorCode\":\"The error code enum identifying the error produced during resolution on the Witnet blockchain.\",\"witnetEvmFinalityBlock\":\"EVM block at which the provided data can be considered to be final.\",\"witnetQueryId\":\"The unique identifier of the Witnet query being reported.\",\"witnetResultTallyHash\":\"Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\",\"witnetResultTimestamp\":\"Timestamp at which the reported value was captured by the Witnet blockchain. \"}},\"reportWitnetQueryResult(uint256,uint64,bytes32,uint256,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))\":{\"details\":\"It should revert if called from any other address different to the WitnetOracle being usedby the WitnetConsumer contract. \",\"params\":{\"witnetEvmFinalityBlock\":\"EVM block at which the provided data can be considered to be final.\",\"witnetQueryId\":\"The unique identifier of the Witnet query being reported.\",\"witnetResultCborValue\":\"The CBOR-encoded resulting value of the Witnet query being reported.\",\"witnetResultTallyHash\":\"Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.\",\"witnetResultTimestamp\":\"Timestamp at which the reported value was captured by the Witnet blockchain. \"}}},\"version\":1},\"userdoc\":{\"events\":{\"WitnetQuery(uint256,uint256,(uint8,uint64))\":{\"notice\":\"Emitted every time a new query containing some verified data request is posted to the WRB.\"},\"WitnetQueryResponse(uint256,uint256)\":{\"notice\":\"Emitted when a query with no callback gets reported into the WRB.\"},\"WitnetQueryResponseDelivered(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a query with a callback gets successfully reported into the WRB.\"},\"WitnetQueryResponseDeliveryFailed(uint256,bytes,uint256,uint256,string)\":{\"notice\":\"Emitted when a query with a callback cannot get reported into the WRB.\"},\"WitnetQueryRewardUpgraded(uint256,uint256)\":{\"notice\":\"Emitted when the reward of some not-yet reported query is upgraded.\"}},\"kind\":\"user\",\"methods\":{\"reportWitnetQueryError(uint256,uint64,bytes32,uint256,uint8,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))\":{\"notice\":\"Method to be called from the WitnetOracle contract as soon as the given Witnet `queryId`gets reported, if reported WITH errors.\"},\"reportWitnetQueryResult(uint256,uint64,bytes32,uint256,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))\":{\"notice\":\"Method to be called from the WitnetOracle contract as soon as the given Witnet `queryId`gets reported, if reported with no errors.\"},\"reportableFrom(address)\":{\"notice\":\"=============================================================================================================== --- Base implementation of IWitnetConsumer --------------------------------------------------------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/apps/WitnetRandomnessRequestConsumer.sol\":\"WitnetRandomnessRequestConsumer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/WitnetOracle.sol\":{\"keccak256\":\"0x84ef8d2ebcba273e4bc23a5ee414a1213df55d1b4e496197a146031fea3a4874\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4a6e31964ed08c4c9dfe5279b4ffe9eeba6e759f15901e080e174e98e96a7f5\",\"dweb:/ipfs/QmTghzVFf2EHnfnHejgFGRBjanXYcstK9ftVaYmHWJfk8w\"]},\"project:/contracts/WitnetRequest.sol\":{\"keccak256\":\"0x5b5e8e9744de10fe86adf97826e3db5c5bcbf357d179a532ef4d7073c7c3af88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25bed2c86e46beb6f59024b731b9f3d1ab176312a28b090ad149ddea48841c32\",\"dweb:/ipfs/QmT3aAXfKQ2MTHo4dK1pCyhdvaLYf5TJtgcim5DfbWHjp4\"]},\"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/WitnetRequestTemplate.sol\":{\"keccak256\":\"0x10084f4f493f87d0acd9937fa786bf9e92512bf3670ee0427445d43c2cae973e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2491b8a6ec8f01a53f35f6aa602df8630955000f3dc67e7dc8b61b0b25a71657\",\"dweb:/ipfs/QmXEuPy6pVnSQpbg8G1DuVMKQyVfbTdtsDUrPYCbZNHARD\"]},\"project:/contracts/apps/UsingWitnet.sol\":{\"keccak256\":\"0x3fe6f2f1162bd1c128fb6aad2db81eaa1fdf04b5d15a5eeadf3e44bc81e2d4ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://927de4c99298ede8a240305bfd8e9daa5c79a32ed68cef19ece9b7f5bb37860b\",\"dweb:/ipfs/QmeZEbXpCTHegD6H7cVDipyXLYHUE4e3C66XojzYk8CpE4\"]},\"project:/contracts/apps/WitnetConsumer.sol\":{\"keccak256\":\"0xf1bb9a975c8bae03b99feb014e0dfb95640a20cc4a5e5a3037374db687a1e339\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d6f1708356b2093c6b649f80e47c7a8ddaa07e66c31d32b4f439a8a6d07b209\",\"dweb:/ipfs/Qmd7fFXCaheGUqPfdZ6xv8dAVwUH7DzweE8squCRJ2NrAh\"]},\"project:/contracts/apps/WitnetRandomnessRequestConsumer.sol\":{\"keccak256\":\"0x9755e166bc9e4c800d35fc8571e6e2d4301712004276c24e518aa8daa0036049\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b18199a5212e7d808a6810ec4b7458fa1c47add380e215b5341ee1b3550261f\",\"dweb:/ipfs/QmYb2Yn4SfkxqUnxeyi2XrgiPa2UAUmN2jjpazXSMTsRvU\"]},\"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/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/WitnetV2.sol\":{\"keccak256\":\"0xb276a6da373bfbe9cd942dd7e59979cda898215d1e36ab3df95a6d6cc6ff770f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc4890876b9bc64f501ccdd48408bb63724865cb2ce8d2057f6b318540adce7c\",\"dweb:/ipfs/QmPMHPdbCsKBavhiLcaDgQ9EjNSvwwzv8TKffotcCv1ctP\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\r\n\r\npragma solidity >=0.7.0 <0.9.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"./WitnetConsumer.sol\";\r\nimport \"../WitnetRequest.sol\";\r\n\r\nabstract contract WitnetRandomnessRequestConsumer\r\n    is\r\n        WitnetConsumer\r\n{\r\n    using Witnet for bytes;\r\n    using WitnetCBOR for WitnetCBOR.CBOR;\r\n    using WitnetV2 for bytes32;\r\n    using WitnetV2 for WitnetV2.RadonSLA;\r\n\r\n    bytes32 internal immutable __witnetRandomnessRadHash;\r\n\r\n    /// @param _wrb Address of the WitnetOracle contract.\r\n    /// @param _baseFeeOverheadPercentage Percentage over base fee to pay as on every data request.\r\n    /// @param _callbackGasLimit Maximum gas to be spent by the IWitnetConsumer's callback methods.\r\n    constructor(\r\n            WitnetOracle _wrb, \r\n            uint16 _baseFeeOverheadPercentage,\r\n            uint24 _callbackGasLimit\r\n        )\r\n        UsingWitnet(_wrb)\r\n        WitnetConsumer(_callbackGasLimit)\r\n    {\r\n        // On-chain building of the Witnet Randomness Request:\r\n        {\r\n            WitnetRequestBytecodes _registry = witnet().registry();\r\n            // Build own Witnet Randomness Request:\r\n            bytes32[] memory _retrievals = new bytes32[](1);\r\n            _retrievals[0] = _registry.verifyRadonRetrieval(\r\n                Witnet.RadonDataRequestMethods.RNG,\r\n                \"\", // no url\r\n                \"\", // no body\r\n                new string[2][](0), // no headers\r\n                hex\"80\" // no retrieval script\r\n            );\r\n            Witnet.RadonFilter[] memory _filters;\r\n            bytes32 _aggregator = _registry.verifyRadonReducer(Witnet.RadonReducer({\r\n                opcode: Witnet.RadonReducerOpcodes.Mode,\r\n                filters: _filters // no filters\r\n            }));\r\n            bytes32 _tally = _registry.verifyRadonReducer(Witnet.RadonReducer({\r\n                opcode: Witnet.RadonReducerOpcodes.ConcatenateAndHash,\r\n                filters: _filters // no filters\r\n            }));\r\n            __witnetRandomnessRadHash = _registry.verifyRadonRequest(\r\n                _retrievals,\r\n                _aggregator,\r\n                _tally,\r\n                32, // 256 bits of pure entropy ;-)\r\n                new string[][](_retrievals.length)\r\n            );\r\n        }\r\n        __witnetBaseFeeOverheadPercentage = _baseFeeOverheadPercentage;\r\n    }\r\n\r\n    function _witnetEstimateEvmReward() virtual override internal view returns (uint256) {\r\n        return _witnetEstimateEvmReward(32);\r\n    }\r\n\r\n    function _witnetRandomUniformUint32(uint32 _range, uint256 _nonce, bytes32 _seed) internal pure returns (uint32) {\r\n        uint256 _number = uint256(\r\n            keccak256(\r\n                abi.encode(_seed, _nonce)\r\n            )\r\n        ) & uint256(2 ** 224 - 1);\r\n        return uint32((_number * _range) >> 224);\r\n    }\r\n\r\n    function _witnetReadRandomizeFromResultValue(WitnetCBOR.CBOR calldata cborValue) internal pure returns (bytes32) {\r\n        return cborValue.readBytes().toBytes32();\r\n    }\r\n\r\n    function __witnetRandomize(uint256 _witnetEvmReward) virtual internal returns (uint256) {\r\n        return __witnetRandomize(_witnetEvmReward, __witnetDefaultSLA);\r\n    }\r\n\r\n    function __witnetRandomize(\r\n            uint256 _witnetEvmReward,\r\n            WitnetV2.RadonSLA memory _witnetQuerySLA\r\n        )\r\n        virtual internal \r\n        returns (uint256 _randomizeId)\r\n    {\r\n        return __witnet.postRequestWithCallback{\r\n            value: _witnetEvmReward\r\n        }(\r\n            __witnetRandomnessRadHash,\r\n            _witnetQuerySLA,\r\n            __witnetCallbackGasLimit\r\n        );\r\n    }\r\n}\r\n",
  "sourcePath": "C:\\Users\\guill\\github\\witnet\\witnet-solidity-bridge\\contracts\\apps\\WitnetRandomnessRequestConsumer.sol",
  "ast": {
    "absolutePath": "project:/contracts/apps/WitnetRandomnessRequestConsumer.sol",
    "exportedSymbols": {
      "IWitnetConsumer": [
        12829
      ],
      "IWitnetOracle": [
        13265
      ],
      "IWitnetOracleEvents": [
        13315
      ],
      "IWitnetRequestBytecodes": [
        13979
      ],
      "IWitnetRequestFactory": [
        14002
      ],
      "UsingWitnet": [
        1157
      ],
      "Witnet": [
        17557
      ],
      "WitnetBuffer": [
        19191
      ],
      "WitnetCBOR": [
        20734
      ],
      "WitnetConsumer": [
        1566
      ],
      "WitnetOracle": [
        749
      ],
      "WitnetRandomnessRequestConsumer": [
        1992
      ],
      "WitnetRequest": [
        826
      ],
      "WitnetRequestBytecodes": [
        849
      ],
      "WitnetRequestFactory": [
        880
      ],
      "WitnetRequestTemplate": [
        1005
      ],
      "WitnetV2": [
        23640
      ]
    },
    "id": 1993,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1754,
        "literals": [
          "solidity",
          ">=",
          "0.7",
          ".0",
          "<",
          "0.9",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "35:31:22"
      },
      {
        "id": 1755,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "68:33:22"
      },
      {
        "absolutePath": "project:/contracts/apps/WitnetConsumer.sol",
        "file": "./WitnetConsumer.sol",
        "id": 1756,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 1993,
        "sourceUnit": 1567,
        "src": "105:30:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/WitnetRequest.sol",
        "file": "../WitnetRequest.sol",
        "id": 1757,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 1993,
        "sourceUnit": 827,
        "src": "137:30:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 1758,
              "name": "WitnetConsumer",
              "nameLocations": [
                "238:14:22"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 1566,
              "src": "238:14:22"
            },
            "id": 1759,
            "nodeType": "InheritanceSpecifier",
            "src": "238:14:22"
          }
        ],
        "canonicalName": "WitnetRandomnessRequestConsumer",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": false,
        "id": 1992,
        "linearizedBaseContracts": [
          1992,
          1566,
          1157,
          13315,
          12829
        ],
        "name": "WitnetRandomnessRequestConsumer",
        "nameLocation": "189:31:22",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 1762,
            "libraryName": {
              "id": 1760,
              "name": "Witnet",
              "nameLocations": [
                "267:6:22"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 17557,
              "src": "267:6:22"
            },
            "nodeType": "UsingForDirective",
            "src": "261:23:22",
            "typeName": {
              "id": 1761,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "278:5:22",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "global": false,
            "id": 1766,
            "libraryName": {
              "id": 1763,
              "name": "WitnetCBOR",
              "nameLocations": [
                "296:10:22"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 20734,
              "src": "296:10:22"
            },
            "nodeType": "UsingForDirective",
            "src": "290:37:22",
            "typeName": {
              "id": 1765,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 1764,
                "name": "WitnetCBOR.CBOR",
                "nameLocations": [
                  "311:10:22",
                  "322:4:22"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 19218,
                "src": "311:15:22"
              },
              "referencedDeclaration": 19218,
              "src": "311:15:22",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                "typeString": "struct WitnetCBOR.CBOR"
              }
            }
          },
          {
            "global": false,
            "id": 1769,
            "libraryName": {
              "id": 1767,
              "name": "WitnetV2",
              "nameLocations": [
                "339:8:22"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 23640,
              "src": "339:8:22"
            },
            "nodeType": "UsingForDirective",
            "src": "333:27:22",
            "typeName": {
              "id": 1768,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "352:7:22",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            }
          },
          {
            "global": false,
            "id": 1773,
            "libraryName": {
              "id": 1770,
              "name": "WitnetV2",
              "nameLocations": [
                "372:8:22"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 23640,
              "src": "372:8:22"
            },
            "nodeType": "UsingForDirective",
            "src": "366:37:22",
            "typeName": {
              "id": 1772,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 1771,
                "name": "WitnetV2.RadonSLA",
                "nameLocations": [
                  "385:8:22",
                  "394:8:22"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 23503,
                "src": "385:17:22"
              },
              "referencedDeclaration": 23503,
              "src": "385:17:22",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                "typeString": "struct WitnetV2.RadonSLA"
              }
            }
          },
          {
            "constant": false,
            "id": 1775,
            "mutability": "immutable",
            "name": "__witnetRandomnessRadHash",
            "nameLocation": "438:25:22",
            "nodeType": "VariableDeclaration",
            "scope": 1992,
            "src": "411:52:22",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 1774,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "411:7:22",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1887,
              "nodeType": "Block",
              "src": "951:1403:22",
              "statements": [
                {
                  "id": 1882,
                  "nodeType": "Block",
                  "src": "1026:1248:22",
                  "statements": [
                    {
                      "assignments": [
                        1794
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1794,
                          "mutability": "mutable",
                          "name": "_registry",
                          "nameLocation": "1064:9:22",
                          "nodeType": "VariableDeclaration",
                          "scope": 1882,
                          "src": "1041:32:22",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                            "typeString": "contract WitnetRequestBytecodes"
                          },
                          "typeName": {
                            "id": 1793,
                            "nodeType": "UserDefinedTypeName",
                            "pathNode": {
                              "id": 1792,
                              "name": "WitnetRequestBytecodes",
                              "nameLocations": [
                                "1041:22:22"
                              ],
                              "nodeType": "IdentifierPath",
                              "referencedDeclaration": 849,
                              "src": "1041:22:22"
                            },
                            "referencedDeclaration": 849,
                            "src": "1041:22:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                              "typeString": "contract WitnetRequestBytecodes"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 1799,
                      "initialValue": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1795,
                              "name": "witnet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1086,
                              "src": "1076:6:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_WitnetOracle_$749_$",
                                "typeString": "function () view returns (contract WitnetOracle)"
                              }
                            },
                            "id": 1796,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1076:8:22",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitnetOracle_$749",
                              "typeString": "contract WitnetOracle"
                            }
                          },
                          "id": 1797,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1085:8:22",
                          "memberName": "registry",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 743,
                          "src": "1076:17:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_WitnetRequestBytecodes_$849_$",
                            "typeString": "function () view external returns (contract WitnetRequestBytecodes)"
                          }
                        },
                        "id": 1798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1076:19:22",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                          "typeString": "contract WitnetRequestBytecodes"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1041:54:22"
                    },
                    {
                      "assignments": [
                        1804
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1804,
                          "mutability": "mutable",
                          "name": "_retrievals",
                          "nameLocation": "1180:11:22",
                          "nodeType": "VariableDeclaration",
                          "scope": 1882,
                          "src": "1163:28:22",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[]"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 1802,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1163:7:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 1803,
                            "nodeType": "ArrayTypeName",
                            "src": "1163:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                              "typeString": "bytes32[]"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 1810,
                      "initialValue": {
                        "arguments": [
                          {
                            "hexValue": "31",
                            "id": 1808,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1208:1:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          ],
                          "id": 1807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "NewExpression",
                          "src": "1194:13:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                            "typeString": "function (uint256) pure returns (bytes32[] memory)"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 1805,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1198:7:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "id": 1806,
                            "nodeType": "ArrayTypeName",
                            "src": "1198:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                              "typeString": "bytes32[]"
                            }
                          }
                        },
                        "id": 1809,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1194:16:22",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1163:47:22"
                    },
                    {
                      "expression": {
                        "id": 1830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "baseExpression": {
                            "id": 1811,
                            "name": "_retrievals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1804,
                            "src": "1225:11:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          "id": 1813,
                          "indexExpression": {
                            "hexValue": "30",
                            "id": 1812,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1237:1:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "nodeType": "IndexAccess",
                          "src": "1225:14:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "arguments": [
                            {
                              "expression": {
                                "expression": {
                                  "id": 1816,
                                  "name": "Witnet",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17557,
                                  "src": "1291:6:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                    "typeString": "type(library Witnet)"
                                  }
                                },
                                "id": 1817,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "1298:23:22",
                                "memberName": "RadonDataRequestMethods",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16410,
                                "src": "1291:30:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_RadonDataRequestMethods_$16410_$",
                                  "typeString": "type(enum Witnet.RadonDataRequestMethods)"
                                }
                              },
                              "id": 1818,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "1322:3:22",
                              "memberName": "RNG",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16407,
                              "src": "1291:34:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_RadonDataRequestMethods_$16410",
                                "typeString": "enum Witnet.RadonDataRequestMethods"
                              }
                            },
                            {
                              "hexValue": "",
                              "id": 1819,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1344:2:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "hexValue": "",
                              "id": 1820,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1375:2:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              "value": ""
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 1826,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1423:1:22",
                                  "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": 1825,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "1407:15:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (string memory[2] memory[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "baseType": {
                                      "id": 1821,
                                      "name": "string",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1411:6:22",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage_ptr",
                                        "typeString": "string"
                                      }
                                    },
                                    "id": 1823,
                                    "length": {
                                      "hexValue": "32",
                                      "id": 1822,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "1418:1:22",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_2_by_1",
                                        "typeString": "int_const 2"
                                      },
                                      "value": "2"
                                    },
                                    "nodeType": "ArrayTypeName",
                                    "src": "1411:9:22",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr",
                                      "typeString": "string[2]"
                                    }
                                  },
                                  "id": 1824,
                                  "nodeType": "ArrayTypeName",
                                  "src": "1411:11:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr",
                                    "typeString": "string[2][]"
                                  }
                                }
                              },
                              "id": 1827,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1407:18:22",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[2] memory[] memory"
                              }
                            },
                            {
                              "hexValue": "80",
                              "id": 1828,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "hexString",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1458:7:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
                                "typeString": "literal_string hex\"80\""
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_RadonDataRequestMethods_$16410",
                                "typeString": "enum Witnet.RadonDataRequestMethods"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                "typeString": "literal_string \"\""
                              },
                              {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[2] memory[] memory"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
                                "typeString": "literal_string hex\"80\""
                              }
                            ],
                            "expression": {
                              "id": 1814,
                              "name": "_registry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1794,
                              "src": "1242:9:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                "typeString": "contract WitnetRequestBytecodes"
                              }
                            },
                            "id": 1815,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "1252:20:22",
                            "memberName": "verifyRadonRetrieval",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 13947,
                            "src": "1242:30:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_enum$_RadonDataRequestMethods_$16410_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (enum Witnet.RadonDataRequestMethods,string memory,string memory,string memory[2] memory[] memory,bytes memory) external returns (bytes32)"
                            }
                          },
                          "id": 1829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1242:261:22",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "1225:278:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "id": 1831,
                      "nodeType": "ExpressionStatement",
                      "src": "1225:278:22"
                    },
                    {
                      "assignments": [
                        1837
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1837,
                          "mutability": "mutable",
                          "name": "_filters",
                          "nameLocation": "1546:8:22",
                          "nodeType": "VariableDeclaration",
                          "scope": 1882,
                          "src": "1518:36:22",
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct Witnet.RadonFilter[]"
                          },
                          "typeName": {
                            "baseType": {
                              "id": 1835,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 1834,
                                "name": "Witnet.RadonFilter",
                                "nameLocations": [
                                  "1518:6:22",
                                  "1525:11:22"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 16439,
                                "src": "1518:18:22"
                              },
                              "referencedDeclaration": 16439,
                              "src": "1518:18:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RadonFilter_$16439_storage_ptr",
                                "typeString": "struct Witnet.RadonFilter"
                              }
                            },
                            "id": 1836,
                            "nodeType": "ArrayTypeName",
                            "src": "1518:20:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_storage_$dyn_storage_ptr",
                              "typeString": "struct Witnet.RadonFilter[]"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 1838,
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1518:36:22"
                    },
                    {
                      "assignments": [
                        1840
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1840,
                          "mutability": "mutable",
                          "name": "_aggregator",
                          "nameLocation": "1577:11:22",
                          "nodeType": "VariableDeclaration",
                          "scope": 1882,
                          "src": "1569:19:22",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 1839,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1569:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 1851,
                      "initialValue": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "expression": {
                                    "id": 1845,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "1667:6:22",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 1846,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "1674:19:22",
                                  "memberName": "RadonReducerOpcodes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16474,
                                  "src": "1667:26:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_RadonReducerOpcodes_$16474_$",
                                    "typeString": "type(enum Witnet.RadonReducerOpcodes)"
                                  }
                                },
                                "id": 1847,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "1694:4:22",
                                "memberName": "Mode",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16464,
                                "src": "1667:31:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                }
                              },
                              {
                                "id": 1848,
                                "name": "_filters",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1837,
                                "src": "1726:8:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              ],
                              "expression": {
                                "id": 1843,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17557,
                                "src": "1620:6:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 1844,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1627:12:22",
                              "memberName": "RadonReducer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16460,
                              "src": "1620:19:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RadonReducer_$16460_storage_ptr_$",
                                "typeString": "type(struct Witnet.RadonReducer storage pointer)"
                              }
                            },
                            "id": 1849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "nameLocations": [
                              "1659:6:22",
                              "1717:7:22"
                            ],
                            "names": [
                              "opcode",
                              "filters"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "1620:144:22",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          ],
                          "expression": {
                            "id": 1841,
                            "name": "_registry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1794,
                            "src": "1591:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                              "typeString": "contract WitnetRequestBytecodes"
                            }
                          },
                          "id": 1842,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1601:18:22",
                          "memberName": "verifyRadonReducer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13955,
                          "src": "1591:28:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_struct$_RadonReducer_$16460_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (struct Witnet.RadonReducer memory) external returns (bytes32)"
                          }
                        },
                        "id": 1850,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1591:174:22",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1569:196:22"
                    },
                    {
                      "assignments": [
                        1853
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 1853,
                          "mutability": "mutable",
                          "name": "_tally",
                          "nameLocation": "1788:6:22",
                          "nodeType": "VariableDeclaration",
                          "scope": 1882,
                          "src": "1780:14:22",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "typeName": {
                            "id": 1852,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1780:7:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 1864,
                      "initialValue": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "expression": {
                                    "id": 1858,
                                    "name": "Witnet",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17557,
                                    "src": "1873:6:22",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                      "typeString": "type(library Witnet)"
                                    }
                                  },
                                  "id": 1859,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "1880:19:22",
                                  "memberName": "RadonReducerOpcodes",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 16474,
                                  "src": "1873:26:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_RadonReducerOpcodes_$16474_$",
                                    "typeString": "type(enum Witnet.RadonReducerOpcodes)"
                                  }
                                },
                                "id": 1860,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "1900:18:22",
                                "memberName": "ConcatenateAndHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 16473,
                                "src": "1873:45:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                }
                              },
                              {
                                "id": 1861,
                                "name": "_filters",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1837,
                                "src": "1946:8:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_enum$_RadonReducerOpcodes_$16474",
                                  "typeString": "enum Witnet.RadonReducerOpcodes"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_struct$_RadonFilter_$16439_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "struct Witnet.RadonFilter memory[] memory"
                                }
                              ],
                              "expression": {
                                "id": 1856,
                                "name": "Witnet",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17557,
                                "src": "1826:6:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Witnet_$17557_$",
                                  "typeString": "type(library Witnet)"
                                }
                              },
                              "id": 1857,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "1833:12:22",
                              "memberName": "RadonReducer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 16460,
                              "src": "1826:19:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_RadonReducer_$16460_storage_ptr_$",
                                "typeString": "type(struct Witnet.RadonReducer storage pointer)"
                              }
                            },
                            "id": 1862,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "nameLocations": [
                              "1865:6:22",
                              "1937:7:22"
                            ],
                            "names": [
                              "opcode",
                              "filters"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "1826:158:22",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_RadonReducer_$16460_memory_ptr",
                              "typeString": "struct Witnet.RadonReducer memory"
                            }
                          ],
                          "expression": {
                            "id": 1854,
                            "name": "_registry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1794,
                            "src": "1797:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                              "typeString": "contract WitnetRequestBytecodes"
                            }
                          },
                          "id": 1855,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1807:18:22",
                          "memberName": "verifyRadonReducer",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13955,
                          "src": "1797:28:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$_t_struct$_RadonReducer_$16460_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (struct Witnet.RadonReducer memory) external returns (bytes32)"
                          }
                        },
                        "id": 1863,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1797:188:22",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1780:205:22"
                    },
                    {
                      "expression": {
                        "id": 1880,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "id": 1865,
                          "name": "__witnetRandomnessRadHash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1775,
                          "src": "2000:25:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "arguments": [
                            {
                              "id": 1868,
                              "name": "_retrievals",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1804,
                              "src": "2075:11:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "id": 1869,
                              "name": "_aggregator",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1840,
                              "src": "2105:11:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "id": 1870,
                              "name": "_tally",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1853,
                              "src": "2135:6:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "hexValue": "3332",
                              "id": 1871,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2160:2:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_32_by_1",
                                "typeString": "int_const 32"
                              },
                              "value": "32"
                            },
                            {
                              "arguments": [
                                {
                                  "expression": {
                                    "id": 1876,
                                    "name": "_retrievals",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1804,
                                    "src": "2228:11:22",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 1877,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "2240:6:22",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "2228:18:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 1875,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "2213:14:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (string memory[] memory[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "baseType": {
                                      "id": 1872,
                                      "name": "string",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "2217:6:22",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage_ptr",
                                        "typeString": "string"
                                      }
                                    },
                                    "id": 1873,
                                    "nodeType": "ArrayTypeName",
                                    "src": "2217:8:22",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                                      "typeString": "string[]"
                                    }
                                  },
                                  "id": 1874,
                                  "nodeType": "ArrayTypeName",
                                  "src": "2217:10:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_array$_t_string_storage_$dyn_storage_$dyn_storage_ptr",
                                    "typeString": "string[][]"
                                  }
                                }
                              },
                              "id": 1878,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2213:34:22",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[] memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_rational_32_by_1",
                                "typeString": "int_const 32"
                              },
                              {
                                "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr",
                                "typeString": "string memory[] memory[] memory"
                              }
                            ],
                            "expression": {
                              "id": 1866,
                              "name": "_registry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1794,
                              "src": "2028:9:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WitnetRequestBytecodes_$849",
                                "typeString": "contract WitnetRequestBytecodes"
                              }
                            },
                            "id": 1867,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2038:18:22",
                            "memberName": "verifyRadonRequest",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 13973,
                            "src": "2028:28:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$_t_uint16_$_t_array$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$dyn_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32[] memory,bytes32,bytes32,uint16,string memory[] memory[] memory) external returns (bytes32)"
                            }
                          },
                          "id": 1879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2028:234:22",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "2000:262:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "id": 1881,
                      "nodeType": "ExpressionStatement",
                      "src": "2000:262:22"
                    }
                  ]
                },
                {
                  "expression": {
                    "id": 1885,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 1883,
                      "name": "__witnetBaseFeeOverheadPercentage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1023,
                      "src": "2284:33:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 1884,
                      "name": "_baseFeeOverheadPercentage",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1781,
                      "src": "2320:26:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "2284:62:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 1886,
                  "nodeType": "ExpressionStatement",
                  "src": "2284:62:22"
                }
              ]
            },
            "documentation": {
              "id": 1776,
              "nodeType": "StructuredDocumentation",
              "src": "472:255:22",
              "text": "@param _wrb Address of the WitnetOracle contract.\n @param _baseFeeOverheadPercentage Percentage over base fee to pay as on every data request.\n @param _callbackGasLimit Maximum gas to be spent by the IWitnetConsumer's callback methods."
            },
            "id": 1888,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 1786,
                    "name": "_wrb",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1779,
                    "src": "897:4:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetOracle_$749",
                      "typeString": "contract WitnetOracle"
                    }
                  }
                ],
                "id": 1787,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 1785,
                  "name": "UsingWitnet",
                  "nameLocations": [
                    "885:11:22"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1157,
                  "src": "885:11:22"
                },
                "nodeType": "ModifierInvocation",
                "src": "885:17:22"
              },
              {
                "arguments": [
                  {
                    "id": 1789,
                    "name": "_callbackGasLimit",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 1783,
                    "src": "927:17:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  }
                ],
                "id": 1790,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 1788,
                  "name": "WitnetConsumer",
                  "nameLocations": [
                    "912:14:22"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1566,
                  "src": "912:14:22"
                },
                "nodeType": "ModifierInvocation",
                "src": "912:33:22"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1784,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1779,
                  "mutability": "mutable",
                  "name": "_wrb",
                  "nameLocation": "772:4:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1888,
                  "src": "759:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_WitnetOracle_$749",
                    "typeString": "contract WitnetOracle"
                  },
                  "typeName": {
                    "id": 1778,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 1777,
                      "name": "WitnetOracle",
                      "nameLocations": [
                        "759:12:22"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 749,
                      "src": "759:12:22"
                    },
                    "referencedDeclaration": 749,
                    "src": "759:12:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WitnetOracle_$749",
                      "typeString": "contract WitnetOracle"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1781,
                  "mutability": "mutable",
                  "name": "_baseFeeOverheadPercentage",
                  "nameLocation": "799:26:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1888,
                  "src": "792:33:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1780,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "792:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1783,
                  "mutability": "mutable",
                  "name": "_callbackGasLimit",
                  "nameLocation": "847:17:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1888,
                  "src": "840:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint24",
                    "typeString": "uint24"
                  },
                  "typeName": {
                    "id": 1782,
                    "name": "uint24",
                    "nodeType": "ElementaryTypeName",
                    "src": "840:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint24",
                      "typeString": "uint24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "744:131:22"
            },
            "returnParameters": {
              "id": 1791,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "951:0:22"
            },
            "scope": 1992,
            "src": "733:1621:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              1529
            ],
            "body": {
              "id": 1898,
              "nodeType": "Block",
              "src": "2447:54:22",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "3332",
                        "id": 1895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2490:2:22",
                        "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": 1894,
                      "name": "_witnetEstimateEvmReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1899,
                        1541
                      ],
                      "referencedDeclaration": 1541,
                      "src": "2465:24:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint16_$returns$_t_uint256_$",
                        "typeString": "function (uint16) view returns (uint256)"
                      }
                    },
                    "id": 1896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2465:28:22",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1893,
                  "id": 1897,
                  "nodeType": "Return",
                  "src": "2458:35:22"
                }
              ]
            },
            "id": 1899,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_witnetEstimateEvmReward",
            "nameLocation": "2371:24:22",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 1890,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2406:8:22"
            },
            "parameters": {
              "id": 1889,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2395:2:22"
            },
            "returnParameters": {
              "id": 1893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1892,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 1899,
                  "src": "2438:7:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1891,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2438:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2437:9:22"
            },
            "scope": 1992,
            "src": "2362:139:22",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1942,
              "nodeType": "Block",
              "src": "2622:213:22",
              "statements": [
                {
                  "assignments": [
                    1911
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 1911,
                      "mutability": "mutable",
                      "name": "_number",
                      "nameLocation": "2641:7:22",
                      "nodeType": "VariableDeclaration",
                      "scope": 1942,
                      "src": "2633:15:22",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 1910,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2633:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 1931,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 1917,
                                  "name": "_seed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1905,
                                  "src": "2712:5:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "id": 1918,
                                  "name": "_nonce",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1903,
                                  "src": "2719:6:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "id": 1915,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4294967295,
                                  "src": "2701:3:22",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 1916,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberLocation": "2705:6:22",
                                "memberName": "encode",
                                "nodeType": "MemberAccess",
                                "src": "2701:10:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 1919,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2701:25:22",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1914,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967288,
                            "src": "2673:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 1920,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2673:68:22",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 1913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2651:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 1912,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2651:7:22",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 1921,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2651:101:22",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&",
                    "rightExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1",
                            "typeString": "int_const 2695...(60 digits omitted)...9215"
                          },
                          "id": 1928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1",
                              "typeString": "int_const 2695...(60 digits omitted)...9216"
                            },
                            "id": 1926,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "32",
                              "id": 1924,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2763:1:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "2"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "**",
                            "rightExpression": {
                              "hexValue": "323234",
                              "id": 1925,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2768:3:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "224"
                            },
                            "src": "2763:8:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_26959946667150639794667015087019630673637144422540572481103610249216_by_1",
                              "typeString": "int_const 2695...(60 digits omitted)...9216"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 1927,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2774:1:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "2763:12:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1",
                            "typeString": "int_const 2695...(60 digits omitted)...9215"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_26959946667150639794667015087019630673637144422540572481103610249215_by_1",
                            "typeString": "int_const 2695...(60 digits omitted)...9215"
                          }
                        ],
                        "id": 1923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "2755:7:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 1922,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2755:7:22",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 1929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2755:21:22",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2651:125:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2633:143:22"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1939,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 1936,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 1934,
                                "name": "_number",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1911,
                                "src": "2802:7:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "id": 1935,
                                "name": "_range",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1901,
                                "src": "2812:6:22",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "2802:16:22",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 1937,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2801:18:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "323234",
                          "id": 1938,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2823:3:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_224_by_1",
                            "typeString": "int_const 224"
                          },
                          "value": "224"
                        },
                        "src": "2801:25:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 1933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2794:6:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint32_$",
                        "typeString": "type(uint32)"
                      },
                      "typeName": {
                        "id": 1932,
                        "name": "uint32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2794:6:22",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 1940,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2794:33:22",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "functionReturnParameters": 1909,
                  "id": 1941,
                  "nodeType": "Return",
                  "src": "2787:40:22"
                }
              ]
            },
            "id": 1943,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_witnetRandomUniformUint32",
            "nameLocation": "2518:26:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1901,
                  "mutability": "mutable",
                  "name": "_range",
                  "nameLocation": "2552:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1943,
                  "src": "2545:13:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 1900,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2545:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1903,
                  "mutability": "mutable",
                  "name": "_nonce",
                  "nameLocation": "2568:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1943,
                  "src": "2560:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1902,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2560:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1905,
                  "mutability": "mutable",
                  "name": "_seed",
                  "nameLocation": "2584:5:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1943,
                  "src": "2576:13:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1904,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2576:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2544:46:22"
            },
            "returnParameters": {
              "id": 1909,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1908,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 1943,
                  "src": "2614:6:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 1907,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2614:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2613:8:22"
            },
            "scope": 1992,
            "src": "2509:326:22",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1957,
              "nodeType": "Block",
              "src": "2956:59:22",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 1951,
                            "name": "cborValue",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1946,
                            "src": "2974:9:22",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_CBOR_$19218_calldata_ptr",
                              "typeString": "struct WitnetCBOR.CBOR calldata"
                            }
                          },
                          "id": 1952,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2984:9:22",
                          "memberName": "readBytes",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 20132,
                          "src": "2974:19:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_struct$_CBOR_$19218_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_struct$_CBOR_$19218_memory_ptr_$",
                            "typeString": "function (struct WitnetCBOR.CBOR memory) pure returns (bytes memory)"
                          }
                        },
                        "id": 1953,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2974:21:22",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 1954,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2996:9:22",
                      "memberName": "toBytes32",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16924,
                      "src": "2974:31:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_bytes_memory_ptr_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 1955,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2974:33:22",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 1950,
                  "id": 1956,
                  "nodeType": "Return",
                  "src": "2967:40:22"
                }
              ]
            },
            "id": 1958,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_witnetReadRandomizeFromResultValue",
            "nameLocation": "2852:35:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1946,
                  "mutability": "mutable",
                  "name": "cborValue",
                  "nameLocation": "2913:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1958,
                  "src": "2888:34:22",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_CBOR_$19218_calldata_ptr",
                    "typeString": "struct WitnetCBOR.CBOR"
                  },
                  "typeName": {
                    "id": 1945,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 1944,
                      "name": "WitnetCBOR.CBOR",
                      "nameLocations": [
                        "2888:10:22",
                        "2899:4:22"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 19218,
                      "src": "2888:15:22"
                    },
                    "referencedDeclaration": 19218,
                    "src": "2888:15:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CBOR_$19218_storage_ptr",
                      "typeString": "struct WitnetCBOR.CBOR"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2887:36:22"
            },
            "returnParameters": {
              "id": 1950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1949,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 1958,
                  "src": "2947:7:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1948,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2947:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2946:9:22"
            },
            "scope": 1992,
            "src": "2843:172:22",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1970,
              "nodeType": "Block",
              "src": "3111:81:22",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 1966,
                        "name": "_witnetEvmReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1960,
                        "src": "3147:16:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 1967,
                        "name": "__witnetDefaultSLA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1020,
                        "src": "3165:18:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                          "typeString": "struct WitnetV2.RadonSLA storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_storage",
                          "typeString": "struct WitnetV2.RadonSLA storage ref"
                        }
                      ],
                      "id": 1965,
                      "name": "__witnetRandomize",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1971,
                        1991
                      ],
                      "referencedDeclaration": 1991,
                      "src": "3129:17:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_struct$_RadonSLA_$23503_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (uint256,struct WitnetV2.RadonSLA memory) returns (uint256)"
                      }
                    },
                    "id": 1968,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3129:55:22",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1964,
                  "id": 1969,
                  "nodeType": "Return",
                  "src": "3122:62:22"
                }
              ]
            },
            "id": 1971,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__witnetRandomize",
            "nameLocation": "3032:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1961,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1960,
                  "mutability": "mutable",
                  "name": "_witnetEvmReward",
                  "nameLocation": "3058:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "3050:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1959,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3050:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3049:26:22"
            },
            "returnParameters": {
              "id": 1964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1963,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 1971,
                  "src": "3102:7:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1962,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3102:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3101:9:22"
            },
            "scope": 1992,
            "src": "3023:169:22",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1990,
              "nodeType": "Block",
              "src": "3404:227:22",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 1985,
                        "name": "__witnetRandomnessRadHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1775,
                        "src": "3518:25:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 1986,
                        "name": "_witnetQuerySLA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1976,
                        "src": "3558:15:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_memory_ptr",
                          "typeString": "struct WitnetV2.RadonSLA memory"
                        }
                      },
                      {
                        "id": 1987,
                        "name": "__witnetCallbackGasLimit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1464,
                        "src": "3588:24:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_struct$_RadonSLA_$23503_memory_ptr",
                          "typeString": "struct WitnetV2.RadonSLA memory"
                        },
                        {
                          "typeIdentifier": "t_uint24",
                          "typeString": "uint24"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_struct$_RadonSLA_$23503_memory_ptr",
                            "typeString": "struct WitnetV2.RadonSLA memory"
                          },
                          {
                            "typeIdentifier": "t_uint24",
                            "typeString": "uint24"
                          }
                        ],
                        "expression": {
                          "id": 1981,
                          "name": "__witnet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1016,
                          "src": "3422:8:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_WitnetOracle_$749",
                            "typeString": "contract WitnetOracle"
                          }
                        },
                        "id": 1982,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3431:23:22",
                        "memberName": "postRequestWithCallback",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 13245,
                        "src": "3422:32:22",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$_t_bytes32_$_t_struct$_RadonSLA_$23503_memory_ptr_$_t_uint24_$returns$_t_uint256_$",
                          "typeString": "function (bytes32,struct WitnetV2.RadonSLA memory,uint24) payable external returns (uint256)"
                        }
                      },
                      "id": 1984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "id": 1983,
                          "name": "_witnetEvmReward",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1973,
                          "src": "3476:16:22",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "src": "3422:81:22",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$_t_bytes32_$_t_struct$_RadonSLA_$23503_memory_ptr_$_t_uint24_$returns$_t_uint256_$value",
                        "typeString": "function (bytes32,struct WitnetV2.RadonSLA memory,uint24) payable external returns (uint256)"
                      }
                    },
                    "id": 1988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3422:201:22",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 1980,
                  "id": 1989,
                  "nodeType": "Return",
                  "src": "3415:208:22"
                }
              ]
            },
            "id": 1991,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "__witnetRandomize",
            "nameLocation": "3209:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1973,
                  "mutability": "mutable",
                  "name": "_witnetEvmReward",
                  "nameLocation": "3249:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "3241:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1972,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3241:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1976,
                  "mutability": "mutable",
                  "name": "_witnetQuerySLA",
                  "nameLocation": "3305:15:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "3280:40:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RadonSLA_$23503_memory_ptr",
                    "typeString": "struct WitnetV2.RadonSLA"
                  },
                  "typeName": {
                    "id": 1975,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 1974,
                      "name": "WitnetV2.RadonSLA",
                      "nameLocations": [
                        "3280:8:22",
                        "3289:8:22"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23503,
                      "src": "3280:17:22"
                    },
                    "referencedDeclaration": 23503,
                    "src": "3280:17:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RadonSLA_$23503_storage_ptr",
                      "typeString": "struct WitnetV2.RadonSLA"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3226:105:22"
            },
            "returnParameters": {
              "id": 1980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1979,
                  "mutability": "mutable",
                  "name": "_randomizeId",
                  "nameLocation": "3385:12:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 1991,
                  "src": "3377:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1978,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3377:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3376:22:22"
            },
            "scope": 1992,
            "src": "3200:431:22",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 1993,
        "src": "171:3463:22",
        "usedErrors": [],
        "usedEvents": [
          13278,
          13285,
          13294,
          13307,
          13314
        ]
      }
    ],
    "src": "35:3601:22"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.25+commit.b61c2a91.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2024-12-05T09:36:04.179Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "constructor": {
        "params": {
          "_baseFeeOverheadPercentage": "Percentage over base fee to pay as on every data request.",
          "_callbackGasLimit": "Maximum gas to be spent by the IWitnetConsumer's callback methods.",
          "_wrb": "Address of the WitnetOracle contract."
        }
      },
      "reportWitnetQueryError(uint256,uint64,bytes32,uint256,uint8,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))": {
        "details": "It should revert if called from any other address different to the WitnetOracle being usedby the WitnetConsumer contract. ",
        "params": {
          "errorArgs": "Error arguments, if any. An empty buffer is to be passed if no error arguments apply.",
          "errorCode": "The error code enum identifying the error produced during resolution on the Witnet blockchain.",
          "witnetEvmFinalityBlock": "EVM block at which the provided data can be considered to be final.",
          "witnetQueryId": "The unique identifier of the Witnet query being reported.",
          "witnetResultTallyHash": "Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.",
          "witnetResultTimestamp": "Timestamp at which the reported value was captured by the Witnet blockchain. "
        }
      },
      "reportWitnetQueryResult(uint256,uint64,bytes32,uint256,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))": {
        "details": "It should revert if called from any other address different to the WitnetOracle being usedby the WitnetConsumer contract. ",
        "params": {
          "witnetEvmFinalityBlock": "EVM block at which the provided data can be considered to be final.",
          "witnetQueryId": "The unique identifier of the Witnet query being reported.",
          "witnetResultCborValue": "The CBOR-encoded resulting value of the Witnet query being reported.",
          "witnetResultTallyHash": "Hash of the commit/reveal witnessing act that took place in the Witnet blockahin.",
          "witnetResultTimestamp": "Timestamp at which the reported value was captured by the Witnet blockchain. "
        }
      }
    },
    "version": 1
  },
  "userdoc": {
    "events": {
      "WitnetQuery(uint256,uint256,(uint8,uint64))": {
        "notice": "Emitted every time a new query containing some verified data request is posted to the WRB."
      },
      "WitnetQueryResponse(uint256,uint256)": {
        "notice": "Emitted when a query with no callback gets reported into the WRB."
      },
      "WitnetQueryResponseDelivered(uint256,uint256,uint256)": {
        "notice": "Emitted when a query with a callback gets successfully reported into the WRB."
      },
      "WitnetQueryResponseDeliveryFailed(uint256,bytes,uint256,uint256,string)": {
        "notice": "Emitted when a query with a callback cannot get reported into the WRB."
      },
      "WitnetQueryRewardUpgraded(uint256,uint256)": {
        "notice": "Emitted when the reward of some not-yet reported query is upgraded."
      }
    },
    "kind": "user",
    "methods": {
      "reportWitnetQueryError(uint256,uint64,bytes32,uint256,uint8,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))": {
        "notice": "Method to be called from the WitnetOracle contract as soon as the given Witnet `queryId`gets reported, if reported WITH errors."
      },
      "reportWitnetQueryResult(uint256,uint64,bytes32,uint256,((bytes,uint256),uint8,uint8,uint8,uint64,uint64))": {
        "notice": "Method to be called from the WitnetOracle contract as soon as the given Witnet `queryId`gets reported, if reported with no errors."
      },
      "reportableFrom(address)": {
        "notice": "=============================================================================================================== --- Base implementation of IWitnetConsumer --------------------------------------------------------------------"
      }
    },
    "version": 1
  }
}