{
  "contractName": "Oracle",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "urlToQuery",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "attributeToFetch",
          "type": "string"
        }
      ],
      "name": "NewRequest",
      "type": "event",
      "signature": "0x0312239616abfb14f7ffa065155abb0ca047274d86c965890db4c8a48b8ce4b6"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "urlToQuery",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "attributeToFetch",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "agreedValue",
          "type": "string"
        }
      ],
      "name": "UpdatedRequest",
      "type": "event",
      "signature": "0x51f1e1f00d186e79f8ea7c82be079fcdd49fe881904a9cdc1903345eb69d3831"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "urlToQuery",
          "type": "string"
        },
        {
          "name": "attributeToFetch",
          "type": "string"
        }
      ],
      "name": "createRequest",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xdf89f819"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        },
        {
          "name": "_valueRetrieved",
          "type": "string"
        }
      ],
      "name": "updateRequest",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0xcfb0ac99"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.0+commit.1d4f565a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_id\",\"type\":\"uint256\"},{\"name\":\"_valueRetrieved\",\"type\":\"string\"}],\"name\":\"updateRequest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"urlToQuery\",\"type\":\"string\"},{\"name\":\"attributeToFetch\",\"type\":\"string\"}],\"name\":\"createRequest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"urlToQuery\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"attributeToFetch\",\"type\":\"string\"}],\"name\":\"NewRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"urlToQuery\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"attributeToFetch\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"agreedValue\",\"type\":\"string\"}],\"name\":\"UpdatedRequest\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/tmp/Monografia/eth-oracle/oracle-sc/contracts/Oracle.sol\":\"Oracle\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/tmp/Monografia/eth-oracle/oracle-sc/contracts/Oracle.sol\":{\"keccak256\":\"0xb2fd83c086cc36c4deb92a99d5d43f4634c4f3847a4acc3d6b95e199ea1ffd04\",\"urls\":[\"bzzr://52d303ec32f6d383f8c8d15458215a69910ef9f8db1a96f1bf14c0c4af1593fb\"]}},\"version\":1}",
  "bytecode": "0x60806040526000600155600360025534801561001a57600080fd5b50610bfe8061002a6000396000f3fe60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063cfb0ac9914610051578063df89f81914610123575b600080fd5b34801561005d57600080fd5b506101216004803603604081101561007457600080fd5b81019080803590602001909291908035906020019064010000000081111561009b57600080fd5b8201836020820111156100ad57600080fd5b803590602001918460018302840111640100000000831117156100cf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610282565b005b34801561012f57600080fd5b506102806004803603604081101561014657600080fd5b810190808035906020019064010000000081111561016357600080fd5b82018360208201111561017557600080fd5b8035906020019184600183028401116401000000008311171561019757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101fa57600080fd5b82018360208201111561020c57600080fd5b8035906020019184600183028401116401000000008311171561022e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506106c0565b005b6000808381548110151561029257fe5b9060005260206000209060070201905060018160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156106bb5760028160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080905060008090505b8015156103b357600083600501600084815260200190815260200160002080546001816001161561010002031660029004905014156103a657600190508383600501600084815260200190815260200160002090805190602001906103a4929190610aad565b505b818060010192505061033e565b600080905060008090505b84600101548110156106b65760608560050160008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b5050505050905060608790508080519060200120828051906020012014156106a7578380600101945050600254841015156106a657878760040190805190602001906104c2929190610aad565b507f51f1e1f00d186e79f8ea7c82be079fcdd49fe881904a9cdc1903345eb69d3831876000015488600201896003018a6004016040518085815260200180602001806020018060200184810384528781815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b505084810383528681815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561060f5780601f106105e45761010080835404028352916020019161060f565b820191906000526020600020905b8154815290600101906020018083116105f257829003601f168201915b50508481038252858181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156106925780601f1061066757610100808354040283529160200191610692565b820191906000526020600020905b81548152906001019060200180831161067557829003601f168201915b505097505050505050505060405180910390a15b5b505080806001019150506103be565b505050505b505050565b60008060a06040519081016040528060015481526020016005815260200185815260200184815260200160206040519081016040528060008152508152509080600181540180825580915050906001820390600052602060002090600702016000909192909190915060008201518160000155602082015181600101556040820151816002019080519060200190610759929190610b2d565b506060820151816003019080519060200190610776929190610b2d565b506080820151816004019080519060200190610793929190610b2d565b5050509050600080600183038154811015156107ab57fe5b906000526020600020906007020190506001816006016000736c2339b46f41a06f09ca0051ddad54d1e582ba7773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600181600601600073b5346cf224c02186606e5f89eacc21ec2539807773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600181600601600073a2997f1ca363d11a0a35bb1ac0ff7849bc13e91473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600181600601600073986897d902bec58beb4d2d6f19085cef31288a1973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001816006016000732fe77cab57f96244086bd8f6feed1bdf950c6d3e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f0312239616abfb14f7ffa065155abb0ca047274d86c965890db4c8a48b8ce4b66001548585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156109f25780820151818401526020810190506109d7565b50505050905090810190601f168015610a1f5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610a58578082015181840152602081019050610a3d565b50505050905090810190601f168015610a855780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a160016000815480929190600101919050555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610aee57805160ff1916838001178555610b1c565b82800160010185558215610b1c579182015b82811115610b1b578251825591602001919060010190610b00565b5b509050610b299190610bad565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610b6e57805160ff1916838001178555610b9c565b82800160010185558215610b9c579182015b82811115610b9b578251825591602001919060010190610b80565b5b509050610ba99190610bad565b5090565b610bcf91905b80821115610bcb576000816000905550600101610bb3565b5090565b9056fea165627a7a72305820e9e270f7127ac374b7fa351eddd469f4332a943c363efc6af25c50d1528049c10029",
  "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063cfb0ac9914610051578063df89f81914610123575b600080fd5b34801561005d57600080fd5b506101216004803603604081101561007457600080fd5b81019080803590602001909291908035906020019064010000000081111561009b57600080fd5b8201836020820111156100ad57600080fd5b803590602001918460018302840111640100000000831117156100cf57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610282565b005b34801561012f57600080fd5b506102806004803603604081101561014657600080fd5b810190808035906020019064010000000081111561016357600080fd5b82018360208201111561017557600080fd5b8035906020019184600183028401116401000000008311171561019757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101fa57600080fd5b82018360208201111561020c57600080fd5b8035906020019184600183028401116401000000008311171561022e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506106c0565b005b6000808381548110151561029257fe5b9060005260206000209060070201905060018160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156106bb5760028160060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080905060008090505b8015156103b357600083600501600084815260200190815260200160002080546001816001161561010002031660029004905014156103a657600190508383600501600084815260200190815260200160002090805190602001906103a4929190610aad565b505b818060010192505061033e565b600080905060008090505b84600101548110156106b65760608560050160008381526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b5050505050905060608790508080519060200120828051906020012014156106a7578380600101945050600254841015156106a657878760040190805190602001906104c2929190610aad565b507f51f1e1f00d186e79f8ea7c82be079fcdd49fe881904a9cdc1903345eb69d3831876000015488600201896003018a6004016040518085815260200180602001806020018060200184810384528781815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561058c5780601f106105615761010080835404028352916020019161058c565b820191906000526020600020905b81548152906001019060200180831161056f57829003601f168201915b505084810383528681815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561060f5780601f106105e45761010080835404028352916020019161060f565b820191906000526020600020905b8154815290600101906020018083116105f257829003601f168201915b50508481038252858181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156106925780601f1061066757610100808354040283529160200191610692565b820191906000526020600020905b81548152906001019060200180831161067557829003601f168201915b505097505050505050505060405180910390a15b5b505080806001019150506103be565b505050505b505050565b60008060a06040519081016040528060015481526020016005815260200185815260200184815260200160206040519081016040528060008152508152509080600181540180825580915050906001820390600052602060002090600702016000909192909190915060008201518160000155602082015181600101556040820151816002019080519060200190610759929190610b2d565b506060820151816003019080519060200190610776929190610b2d565b506080820151816004019080519060200190610793929190610b2d565b5050509050600080600183038154811015156107ab57fe5b906000526020600020906007020190506001816006016000736c2339b46f41a06f09ca0051ddad54d1e582ba7773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600181600601600073b5346cf224c02186606e5f89eacc21ec2539807773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600181600601600073a2997f1ca363d11a0a35bb1ac0ff7849bc13e91473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600181600601600073986897d902bec58beb4d2d6f19085cef31288a1973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001816006016000732fe77cab57f96244086bd8f6feed1bdf950c6d3e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f0312239616abfb14f7ffa065155abb0ca047274d86c965890db4c8a48b8ce4b66001548585604051808481526020018060200180602001838103835285818151815260200191508051906020019080838360005b838110156109f25780820151818401526020810190506109d7565b50505050905090810190601f168015610a1f5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610a58578082015181840152602081019050610a3d565b50505050905090810190601f168015610a855780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a160016000815480929190600101919050555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610aee57805160ff1916838001178555610b1c565b82800160010185558215610b1c579182015b82811115610b1b578251825591602001919060010190610b00565b5b509050610b299190610bad565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610b6e57805160ff1916838001178555610b9c565b82800160010185558215610b9c579182015b82811115610b9b578251825591602001919060010190610b80565b5b509050610ba99190610bad565b5090565b610bcf91905b80821115610bcb576000816000905550600101610bb3565b5090565b9056fea165627a7a72305820e9e270f7127ac374b7fa351eddd469f4332a943c363efc6af25c50d1528049c10029",
  "sourceMap": "34:2923:1:-;;;93:1;76:18;;139:1;122:18;;34:2923;8:9:-1;5:2;;;30:1;27;20:12;5:2;34:2923:1;;;;;;;",
  "deployedSourceMap": "34:2923:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:1151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1804:1151:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1804:1151:1;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1804:1151:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1804:1151:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1804:1151:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1804:1151:1;;;;;;;;;;;;;;;;;;954:846;;8:9:-1;5:2;;;30:1;27;20:12;5:2;954:846:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;954:846:1;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;954:846:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;954:846:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;954:846:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;954:846:1;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;954:846:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;954:846:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;954:846:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;954:846:1;;;;;;;;;;;;;;;;;;1804:1151;1895:27;1925:8;1934:3;1925:13;;;;;;;;;;;;;;;;;;;;1895:43;;1991:1;1948:11;:18;;:39;1975:10;1948:39;;;;;;;;;;;;;;;;:44;1945:1006;;;2083:1;2050:11;:18;;:30;2069:10;2050:30;;;;;;;;;;;;;;;:34;;;;2093:9;2105:1;2093:13;;2114:10;2127:5;2114:18;;2140:216;2147:5;2146:6;2140:216;;;2241:1;2205:11;:18;;:24;2224:4;2205:24;;;;;;;;;;;2199:38;;;;;;;;;;;;;;;;:43;2196:136;;;2263:4;2255:12;;2306:15;2279:11;:18;;:24;2298:4;2279:24;;;;;;;;;;;:42;;;;;;;;;;;;:::i;:::-;;2196:136;2341:6;;;;;;;2140:216;;;2364:18;2385:1;2364:22;;2399:6;2408:1;2399:10;;2395:550;2415:11;:23;;;2411:1;:27;2395:550;;;2454:14;2477:11;:18;;:21;2496:1;2477:21;;;;;;;;;;;2454:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2509:14;2532:15;2509:39;;2588:1;2578:12;;;;;;2572:1;2562:12;;;;;;:28;2559:378;;;2603:15;;;;;;;2650:9;;2633:13;:26;;2630:297;;;2700:15;2674:11;:23;;:41;;;;;;;;;;;;:::i;:::-;;2734:180;2765:11;:14;;;2795:11;:22;;2833:11;:28;;2877:11;:23;;2734:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2630:297;2559:378;2395:550;;2440:3;;;;;;;2395:550;;;;1945:1006;;;;1804:1151;;;:::o;954:846::-;1102:11;1116:8;1130:55;;;;;;;;;1138:9;;1130:55;;;;1149:1;1130:55;;;;1152:10;1130:55;;;;1164:16;1130:55;;;;;;;;;;;;;;;;;;;;1116:70;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1116:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1102:84;;1192:17;1212:8;1228:1;1221:6;:8;1212:18;;;;;;;;;;;;;;;;;;;;1192:38;;1334:1;1270;:8;;:61;1287:42;1270:61;;;;;;;;;;;;;;;:65;;;;1405:1;1341;:8;;:61;1358:42;1341:61;;;;;;;;;;;;;;;:65;;;;1476:1;1412;:8;;:61;1429:42;1412:61;;;;;;;;;;;;;;;:65;;;;1547:1;1483;:8;;:61;1500:42;1483:61;;;;;;;;;;;;;;;:65;;;;1618:1;1554;:8;;:61;1571:42;1554:61;;;;;;;;;;;;;;;:65;;;;1701:76;1720:9;;1737:10;1755:16;1701:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1701:76:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1701:76:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1784:9;;:11;;;;;;;;;;;;;954:846;;;;:::o;34:2923::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity >=0.4.21 <0.6.0;\n\ncontract Oracle {\n  Request[] requests;\n  uint currentId = 0; //increasing request id\n  uint minQuorum = 3; //minimum number of responses to receive before declaring final result\n\n  // defines a general api request\n  struct Request {\n    uint id;                            //request id\n    uint oracleCount;                    //hardcoded oracle count\n    string urlToQuery;                  //API url\n    string attributeToFetch;            //json attribute (key) to retrieve in the response\n    string agreedValue;                 //value from key\n    mapping(uint => string) anwers;     //answers provided by the oracles\n    mapping(address => uint) quorum;    //oracles which will query the answer\n  }\n\n  event NewRequest (\n    uint id,\n    string urlToQuery,\n    string attributeToFetch\n  );\n\n  event UpdatedRequest (\n    uint id,\n    string urlToQuery,\n    string attributeToFetch,\n    string agreedValue\n  );\n\n  function createRequest (\n    string memory urlToQuery,\n    string memory attributeToFetch\n  )\n  public\n  {\n    // Hardcothroughded oracle count\n    uint lenght = requests.push(Request(currentId, 5, urlToQuery, attributeToFetch, \"\"));\n    Request storage r = requests[lenght-1];\n\n    // Hardcoded oracles address\n    r.quorum[address(0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77)] = 1;\n    r.quorum[address(0xb5346CF224c02186606e5f89EACC21eC25398077)] = 1;\n    r.quorum[address(0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914)] = 1;\n    r.quorum[address(0x986897d902bEC58BEB4D2d6F19085ceF31288A19)] = 1;\n    r.quorum[address(0x2fE77cAB57f96244086BD8F6feEd1bdf950C6D3e)] = 1;\n\n    // launch an event to be detected by oracle outside of blockchain\n    emit NewRequest (\n      currentId,\n      urlToQuery,\n      attributeToFetch\n    );\n\n    currentId++;\n  }\n\n  function updateRequest (\n    uint _id,\n    string memory _valueRetrieved\n  ) public {\n\n    Request storage currRequest = requests[_id];\n\n    if(currRequest.quorum[address(msg.sender)] == 1){\n\n      // meaning this address has voted already\n      currRequest.quorum[msg.sender] = 2;\n\n      uint tmpI = 0;\n      bool found = false;\n      while(!found) {\n        //find first empty slot\n        if(bytes(currRequest.anwers[tmpI]).length == 0){\n          found = true;\n          currRequest.anwers[tmpI] = _valueRetrieved;\n        }\n        tmpI++;\n      }\n\n      uint currentQuorum = 0;\n\n      for(uint i = 0; i < currRequest.oracleCount; i++){\n        bytes memory a = bytes(currRequest.anwers[i]);\n        bytes memory b = bytes(_valueRetrieved);\n\n        if(keccak256(a) == keccak256(b)){\n          currentQuorum++;\n          if(currentQuorum >= minQuorum){\n            currRequest.agreedValue = _valueRetrieved;\n            emit UpdatedRequest (\n              currRequest.id,\n              currRequest.urlToQuery,\n              currRequest.attributeToFetch,\n              currRequest.agreedValue\n            );\n          }\n        }\n      }\n    }\n  }\n}\n",
  "sourcePath": "/tmp/Monografia/eth-oracle/oracle-sc/contracts/Oracle.sol",
  "ast": {
    "absolutePath": "/tmp/Monografia/eth-oracle/oracle-sc/contracts/Oracle.sol",
    "exportedSymbols": {
      "Oracle": [
        331
      ]
    },
    "id": 332,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 58,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".21",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:32:1"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 331,
        "linearizedBaseContracts": [
          331
        ],
        "name": "Oracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 61,
            "name": "requests",
            "nodeType": "VariableDeclaration",
            "scope": 331,
            "src": "54:18:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
              "typeString": "struct Oracle.Request[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 59,
                "name": "Request",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 86,
                "src": "54:7:1",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                  "typeString": "struct Oracle.Request"
                }
              },
              "id": 60,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "54:9:1",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage_ptr",
                "typeString": "struct Oracle.Request[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 64,
            "name": "currentId",
            "nodeType": "VariableDeclaration",
            "scope": 331,
            "src": "76:18:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 62,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "76:4:1",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 63,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "93:1:1",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 67,
            "name": "minQuorum",
            "nodeType": "VariableDeclaration",
            "scope": 331,
            "src": "122:18:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 65,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "122:4:1",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "33",
              "id": 66,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "139:1:1",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "internal"
          },
          {
            "canonicalName": "Oracle.Request",
            "id": 86,
            "members": [
              {
                "constant": false,
                "id": 69,
                "name": "id",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "272:7:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 68,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "272:4:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 71,
                "name": "oracleCount",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "325:16:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 70,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "325:4:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 73,
                "name": "urlToQuery",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "391:17:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 72,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "391:6:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 75,
                "name": "attributeToFetch",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "441:23:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 74,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "441:6:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 77,
                "name": "agreedValue",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "532:18:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 76,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "532:6:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 81,
                "name": "anwers",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "589:30:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                  "typeString": "mapping(uint256 => string)"
                },
                "typeName": {
                  "id": 80,
                  "keyType": {
                    "id": 78,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "597:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "589:23:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                    "typeString": "mapping(uint256 => string)"
                  },
                  "valueType": {
                    "id": 79,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "605:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 85,
                "name": "quorum",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "663:31:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 84,
                  "keyType": {
                    "id": 82,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "671:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "663:24:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 83,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "682:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Request",
            "nodeType": "StructDefinition",
            "scope": 331,
            "src": "251:489:1",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 94,
            "name": "NewRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 93,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 88,
                  "indexed": false,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 94,
                  "src": "767:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 87,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "767:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 90,
                  "indexed": false,
                  "name": "urlToQuery",
                  "nodeType": "VariableDeclaration",
                  "scope": 94,
                  "src": "780:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 89,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "780:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 92,
                  "indexed": false,
                  "name": "attributeToFetch",
                  "nodeType": "VariableDeclaration",
                  "scope": 94,
                  "src": "803:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 91,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "803:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "761:69:1"
            },
            "src": "744:87:1"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 104,
            "name": "UpdatedRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 96,
                  "indexed": false,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "862:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 95,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "862:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 98,
                  "indexed": false,
                  "name": "urlToQuery",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "875:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 97,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "875:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 100,
                  "indexed": false,
                  "name": "attributeToFetch",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "898:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 99,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "898:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 102,
                  "indexed": false,
                  "name": "agreedValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "927:18:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 101,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "856:93:1"
            },
            "src": "835:115:1"
          },
          {
            "body": {
              "id": 191,
              "nodeType": "Block",
              "src": "1059:741:1",
              "statements": [
                {
                  "assignments": [
                    112
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 112,
                      "name": "lenght",
                      "nodeType": "VariableDeclaration",
                      "scope": 191,
                      "src": "1102:11:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 111,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1102:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 123,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 116,
                            "name": "currentId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64,
                            "src": "1138:9:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "35",
                            "id": 117,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1149:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_5_by_1",
                              "typeString": "int_const 5"
                            },
                            "value": "5"
                          },
                          {
                            "argumentTypes": null,
                            "id": 118,
                            "name": "urlToQuery",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 106,
                            "src": "1152:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 119,
                            "name": "attributeToFetch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 108,
                            "src": "1164:16:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 120,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1182:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_5_by_1",
                              "typeString": "int_const 5"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            }
                          ],
                          "id": 115,
                          "name": "Request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 86,
                          "src": "1130:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Request_$86_storage_ptr_$",
                            "typeString": "type(struct Oracle.Request storage pointer)"
                          }
                        },
                        "id": 121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1130:55:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$86_memory",
                          "typeString": "struct Oracle.Request memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Request_$86_memory",
                          "typeString": "struct Oracle.Request memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 113,
                        "name": "requests",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 61,
                        "src": "1116:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
                          "typeString": "struct Oracle.Request storage ref[] storage ref"
                        }
                      },
                      "id": 114,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1116:13:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Request_$86_storage_$returns$_t_uint256_$",
                        "typeString": "function (struct Oracle.Request storage ref) returns (uint256)"
                      }
                    },
                    "id": 122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1116:70:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1102:84:1"
                },
                {
                  "assignments": [
                    125
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 125,
                      "name": "r",
                      "nodeType": "VariableDeclaration",
                      "scope": 191,
                      "src": "1192:17:1",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                        "typeString": "struct Oracle.Request"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 124,
                        "name": "Request",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 86,
                        "src": "1192:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                          "typeString": "struct Oracle.Request"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 131,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 126,
                      "name": "requests",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 61,
                      "src": "1212:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
                        "typeString": "struct Oracle.Request storage ref[] storage ref"
                      }
                    },
                    "id": 130,
                    "indexExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 127,
                        "name": "lenght",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 112,
                        "src": "1221:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 128,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1228:1:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "1221:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1212:18:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$86_storage",
                      "typeString": "struct Oracle.Request storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1192:38:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 132,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1270:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 137,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1270:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 138,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307836633233333962343646343161303666303943413030353164644144353444316535383262413737",
                            "id": 135,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1287:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1279:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1279:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1270:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1334:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1270:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 141,
                  "nodeType": "ExpressionStatement",
                  "src": "1270:65:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 142,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1341:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 147,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1341:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 148,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307862353334364346323234633032313836363036653566383945414343323165433235333938303737",
                            "id": 145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1358:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0xb5346CF224c02186606e5f89EACC21eC25398077"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 144,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1350:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1350:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1341:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1405:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1341:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 151,
                  "nodeType": "ExpressionStatement",
                  "src": "1341:65:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 152,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1412:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 157,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1412:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 158,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307861323939374631434133363344313161306133356242314163304666373834396263313365393134",
                            "id": 155,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1429:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 154,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1421:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 156,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1421:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1412:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 159,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1476:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1412:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 161,
                  "nodeType": "ExpressionStatement",
                  "src": "1412:65:1"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 163,
                        "name": "currentId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64,
                        "src": "1578:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 164,
                        "name": "urlToQuery",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 106,
                        "src": "1595:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 165,
                        "name": "attributeToFetch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1613:16:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 162,
                      "name": "NewRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 94,
                      "src": "1559:10:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,string memory,string memory)"
                      }
                    },
                    "id": 166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1559:76:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 171,
                  "nodeType": "ExpressionStatement",
                  "src": "1483:65:1",
                  "expression": {
                    "argumentTypes": null,
                    "id": 170,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 162,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1483:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 167,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1483:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 168,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307839383638393764393032624543353842454234443264364631393038356365463331323838413139",
                            "id": 165,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1500:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0x986897d902bEC58BEB4D2d6F19085ceF31288A19"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1492:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 166,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1492:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1483:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 169,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1547:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1483:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Assignment",
                    "operator": "=",
                    "prefix": false,
                    "src": "1554:65:1",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 168,
                      "name": "currentId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64,
                      "src": "1642:9:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 172,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1554:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 177,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1554:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 178,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307832664537376341423537663936323434303836424438463666654564316264663935304336443365",
                            "id": 175,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1571:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0x2fE77cAB57f96244086BD8F6feEd1bdf950C6D3e"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1563:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 176,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1563:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1554:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1618:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    }
                  },
                  "id": 181,
                  "nodeType": "ExpressionStatement",
                  "src": "1554:65:1"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 183,
                        "name": "currentId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64,
                        "src": "1720:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 184,
                        "name": "urlToQuery",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 106,
                        "src": "1737:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 185,
                        "name": "attributeToFetch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1755:16:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 182,
                      "name": "NewRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 94,
                      "src": "1701:10:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,string memory,string memory)"
                      }
                    },
                    "id": 186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1701:76:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 187,
                  "nodeType": "EmitStatement",
                  "src": "1696:81:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "1784:11:1",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 188,
                      "name": "currentId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64,
                      "src": "1784:9:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 190,
                  "nodeType": "ExpressionStatement",
                  "src": "1784:11:1"
                }
              ]
            },
            "documentation": null,
            "id": 192,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 106,
                  "name": "urlToQuery",
                  "nodeType": "VariableDeclaration",
                  "scope": 192,
                  "src": "983:24:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 105,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 108,
                  "name": "attributeToFetch",
                  "nodeType": "VariableDeclaration",
                  "scope": 192,
                  "src": "1013:30:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 107,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1013:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "977:70:1"
            },
            "returnParameters": {
              "id": 110,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1059:0:1"
            },
            "scope": 331,
            "src": "954:846:1",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 329,
              "nodeType": "Block",
              "src": "1888:1067:1",
              "statements": [
                {
                  "assignments": [
                    200
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 200,
                      "name": "currRequest",
                      "nodeType": "VariableDeclaration",
                      "scope": 329,
                      "src": "1895:27:1",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                        "typeString": "struct Oracle.Request"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 199,
                        "name": "Request",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 86,
                        "src": "1895:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                          "typeString": "struct Oracle.Request"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 204,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 201,
                      "name": "requests",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 61,
                      "src": "1925:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
                        "typeString": "struct Oracle.Request storage ref[] storage ref"
                      }
                    },
                    "id": 203,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 202,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 194,
                      "src": "1934:3:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1925:13:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$86_storage",
                      "typeString": "struct Oracle.Request storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1895:43:1"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 205,
                          "name": "currRequest",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 200,
                          "src": "1948:11:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 206,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1948:18:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 211,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 208,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 346,
                              "src": "1975:3:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 209,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1975:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1967:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1967:19:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1948:39:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1991:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1948:44:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 328,
                  "nodeType": "IfStatement",
                  "src": "1945:1006:1",
                  "trueBody": {
                    "id": 327,
                    "nodeType": "Block",
                    "src": "1993:958:1",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 221,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 214,
                                "name": "currRequest",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 200,
                                "src": "2050:11:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                  "typeString": "struct Oracle.Request storage pointer"
                                }
                              },
                              "id": 218,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "quorum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 85,
                              "src": "2050:18:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 219,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 216,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 346,
                                "src": "2069:3:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 217,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2069:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2050:30:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "32",
                            "id": 220,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2083:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "2"
                          },
                          "src": "2050:34:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 222,
                        "nodeType": "ExpressionStatement",
                        "src": "2050:34:1"
                      },
                      {
                        "assignments": [
                          224
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 224,
                            "name": "tmpI",
                            "nodeType": "VariableDeclaration",
                            "scope": 327,
                            "src": "2093:9:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 223,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "2093:4:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 226,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2105:1:1",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2093:13:1"
                      },
                      {
                        "assignments": [
                          228
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 228,
                            "name": "found",
                            "nodeType": "VariableDeclaration",
                            "scope": 327,
                            "src": "2114:10:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 227,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "2114:4:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 230,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 229,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2127:5:1",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2114:18:1"
                      },
                      {
                        "body": {
                          "id": 259,
                          "nodeType": "Block",
                          "src": "2154:202:1",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 241,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 234,
                                            "name": "currRequest",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 200,
                                            "src": "2205:11:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                              "typeString": "struct Oracle.Request storage pointer"
                                            }
                                          },
                                          "id": 235,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "anwers",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 81,
                                          "src": "2205:18:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                            "typeString": "mapping(uint256 => string storage ref)"
                                          }
                                        },
                                        "id": 237,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 236,
                                          "name": "tmpI",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 224,
                                          "src": "2224:4:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "2205:24:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_storage",
                                          "typeString": "string storage ref"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_storage",
                                          "typeString": "string storage ref"
                                        }
                                      ],
                                      "id": 233,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "2199:5:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                        "typeString": "type(bytes storage pointer)"
                                      },
                                      "typeName": "bytes"
                                    },
                                    "id": 238,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "2199:31:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes storage pointer"
                                    }
                                  },
                                  "id": 239,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "2199:38:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 240,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2241:1:1",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "2199:43:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 255,
                              "nodeType": "IfStatement",
                              "src": "2196:136:1",
                              "trueBody": {
                                "id": 254,
                                "nodeType": "Block",
                                "src": "2243:89:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 244,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 242,
                                        "name": "found",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 228,
                                        "src": "2255:5:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 243,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2263:4:1",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "2255:12:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 245,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2255:12:1"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 252,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 246,
                                            "name": "currRequest",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 200,
                                            "src": "2279:11:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                              "typeString": "struct Oracle.Request storage pointer"
                                            }
                                          },
                                          "id": 249,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "anwers",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 81,
                                          "src": "2279:18:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                            "typeString": "mapping(uint256 => string storage ref)"
                                          }
                                        },
                                        "id": 250,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 248,
                                          "name": "tmpI",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 224,
                                          "src": "2298:4:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "2279:24:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_storage",
                                          "typeString": "string storage ref"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 251,
                                        "name": "_valueRetrieved",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 196,
                                        "src": "2306:15:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "2279:42:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "id": 253,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2279:42:1"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 257,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "2341:6:1",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 256,
                                  "name": "tmpI",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 224,
                                  "src": "2341:4:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 258,
                              "nodeType": "ExpressionStatement",
                              "src": "2341:6:1"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "id": 232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "2146:6:1",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 231,
                            "name": "found",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 228,
                            "src": "2147:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 260,
                        "nodeType": "WhileStatement",
                        "src": "2140:216:1"
                      },
                      {
                        "assignments": [
                          262
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 262,
                            "name": "currentQuorum",
                            "nodeType": "VariableDeclaration",
                            "scope": 327,
                            "src": "2364:18:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 261,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "2364:4:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 264,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 263,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2385:1:1",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2364:22:1"
                      },
                      {
                        "body": {
                          "id": 325,
                          "nodeType": "Block",
                          "src": "2444:501:1",
                          "statements": [
                            {
                              "assignments": [
                                277
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 277,
                                  "name": "a",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 325,
                                  "src": "2454:14:1",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 276,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2454:5:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 284,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 279,
                                        "name": "currRequest",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 200,
                                        "src": "2477:11:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                          "typeString": "struct Oracle.Request storage pointer"
                                        }
                                      },
                                      "id": 280,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "anwers",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 81,
                                      "src": "2477:18:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                        "typeString": "mapping(uint256 => string storage ref)"
                                      }
                                    },
                                    "id": 282,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 281,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 266,
                                      "src": "2496:1:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "2477:21:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  ],
                                  "id": 278,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2471:5:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 283,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2471:28:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes storage pointer"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "2454:45:1"
                            },
                            {
                              "assignments": [
                                286
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 286,
                                  "name": "b",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 325,
                                  "src": "2509:14:1",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 285,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2509:5:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 290,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 288,
                                    "name": "_valueRetrieved",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 196,
                                    "src": "2532:15:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 287,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2526:5:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 289,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2526:22:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "2509:39:1"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 297,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 292,
                                      "name": "a",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 277,
                                      "src": "2572:1:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 291,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 340,
                                    "src": "2562:9:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 293,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2562:12:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 295,
                                      "name": "b",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 286,
                                      "src": "2588:1:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 294,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 340,
                                    "src": "2578:9:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 296,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2578:12:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "2562:28:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 324,
                              "nodeType": "IfStatement",
                              "src": "2559:378:1",
                              "trueBody": {
                                "id": 323,
                                "nodeType": "Block",
                                "src": "2591:346:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 299,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "2603:15:1",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 298,
                                        "name": "currentQuorum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 262,
                                        "src": "2603:13:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 300,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2603:15:1"
                                  },
                                  {
                                    "condition": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 303,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 301,
                                        "name": "currentQuorum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 262,
                                        "src": "2633:13:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">=",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 302,
                                        "name": "minQuorum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 67,
                                        "src": "2650:9:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "2633:26:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseBody": null,
                                    "id": 322,
                                    "nodeType": "IfStatement",
                                    "src": "2630:297:1",
                                    "trueBody": {
                                      "id": 321,
                                      "nodeType": "Block",
                                      "src": "2660:267:1",
                                      "statements": [
                                        {
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 308,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 304,
                                                "name": "currRequest",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 200,
                                                "src": "2674:11:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                  "typeString": "struct Oracle.Request storage pointer"
                                                }
                                              },
                                              "id": 306,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": true,
                                              "memberName": "agreedValue",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 77,
                                              "src": "2674:23:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage",
                                                "typeString": "string storage ref"
                                              }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                              "argumentTypes": null,
                                              "id": 307,
                                              "name": "_valueRetrieved",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 196,
                                              "src": "2700:15:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                              }
                                            },
                                            "src": "2674:41:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_storage",
                                              "typeString": "string storage ref"
                                            }
                                          },
                                          "id": 309,
                                          "nodeType": "ExpressionStatement",
                                          "src": "2674:41:1"
                                        },
                                        {
                                          "eventCall": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 311,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2765:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 312,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "id",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 69,
                                                "src": "2765:14:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 313,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2795:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 314,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "urlToQuery",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 73,
                                                "src": "2795:22:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 315,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2833:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 316,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "attributeToFetch",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 75,
                                                "src": "2833:28:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 317,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2877:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 318,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "agreedValue",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 77,
                                                "src": "2877:23:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                },
                                                {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                },
                                                {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                },
                                                {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              ],
                                              "id": 310,
                                              "name": "UpdatedRequest",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 104,
                                              "src": "2734:14:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (uint256,string memory,string memory,string memory)"
                                              }
                                            },
                                            "id": 319,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2734:180:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_tuple$__$",
                                              "typeString": "tuple()"
                                            }
                                          },
                                          "id": 320,
                                          "nodeType": "EmitStatement",
                                          "src": "2729:185:1"
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 272,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 269,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 266,
                            "src": "2411:1:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 270,
                              "name": "currRequest",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 200,
                              "src": "2415:11:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                "typeString": "struct Oracle.Request storage pointer"
                              }
                            },
                            "id": 271,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "oracleCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 71,
                            "src": "2415:23:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2411:27:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 326,
                        "initializationExpression": {
                          "assignments": [
                            266
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 266,
                              "name": "i",
                              "nodeType": "VariableDeclaration",
                              "scope": 326,
                              "src": "2399:6:1",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 265,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "2399:4:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 268,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 267,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2408:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "2399:10:1"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "2440:3:1",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 273,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 266,
                              "src": "2440:1:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 275,
                          "nodeType": "ExpressionStatement",
                          "src": "2440:3:1"
                        },
                        "nodeType": "ForStatement",
                        "src": "2395:550:1"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 330,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "updateRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 194,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 330,
                  "src": "1833:8:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1833:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 196,
                  "name": "_valueRetrieved",
                  "nodeType": "VariableDeclaration",
                  "scope": 330,
                  "src": "1847:29:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 195,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1847:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1827:53:1"
            },
            "returnParameters": {
              "id": 198,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1888:0:1"
            },
            "scope": 331,
            "src": "1804:1151:1",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 332,
        "src": "34:2923:1"
      }
    ],
    "src": "0:2958:1"
  },
  "legacyAST": {
    "absolutePath": "/tmp/Monografia/eth-oracle/oracle-sc/contracts/Oracle.sol",
    "exportedSymbols": {
      "Oracle": [
        331
      ]
    },
    "id": 332,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 58,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".21",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:32:1"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 331,
        "linearizedBaseContracts": [
          331
        ],
        "name": "Oracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 61,
            "name": "requests",
            "nodeType": "VariableDeclaration",
            "scope": 331,
            "src": "54:18:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
              "typeString": "struct Oracle.Request[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 59,
                "name": "Request",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 86,
                "src": "54:7:1",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                  "typeString": "struct Oracle.Request"
                }
              },
              "id": 60,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "54:9:1",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage_ptr",
                "typeString": "struct Oracle.Request[]"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 64,
            "name": "currentId",
            "nodeType": "VariableDeclaration",
            "scope": 331,
            "src": "76:18:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 62,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "76:4:1",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30",
              "id": 63,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "93:1:1",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 67,
            "name": "minQuorum",
            "nodeType": "VariableDeclaration",
            "scope": 331,
            "src": "122:18:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 65,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "122:4:1",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "33",
              "id": 66,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "139:1:1",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "internal"
          },
          {
            "canonicalName": "Oracle.Request",
            "id": 86,
            "members": [
              {
                "constant": false,
                "id": 69,
                "name": "id",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "272:7:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 68,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "272:4:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 71,
                "name": "oracleCount",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "325:16:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 70,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "325:4:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 73,
                "name": "urlToQuery",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "391:17:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 72,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "391:6:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 75,
                "name": "attributeToFetch",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "441:23:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 74,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "441:6:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 77,
                "name": "agreedValue",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "532:18:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 76,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "532:6:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 81,
                "name": "anwers",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "589:30:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                  "typeString": "mapping(uint256 => string)"
                },
                "typeName": {
                  "id": 80,
                  "keyType": {
                    "id": 78,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "597:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "589:23:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                    "typeString": "mapping(uint256 => string)"
                  },
                  "valueType": {
                    "id": 79,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "605:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 85,
                "name": "quorum",
                "nodeType": "VariableDeclaration",
                "scope": 86,
                "src": "663:31:1",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 84,
                  "keyType": {
                    "id": 82,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "671:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "663:24:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 83,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "682:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Request",
            "nodeType": "StructDefinition",
            "scope": 331,
            "src": "251:489:1",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 94,
            "name": "NewRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 93,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 88,
                  "indexed": false,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 94,
                  "src": "767:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 87,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "767:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 90,
                  "indexed": false,
                  "name": "urlToQuery",
                  "nodeType": "VariableDeclaration",
                  "scope": 94,
                  "src": "780:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 89,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "780:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 92,
                  "indexed": false,
                  "name": "attributeToFetch",
                  "nodeType": "VariableDeclaration",
                  "scope": 94,
                  "src": "803:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 91,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "803:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "761:69:1"
            },
            "src": "744:87:1"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 104,
            "name": "UpdatedRequest",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 103,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 96,
                  "indexed": false,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "862:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 95,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "862:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 98,
                  "indexed": false,
                  "name": "urlToQuery",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "875:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 97,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "875:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 100,
                  "indexed": false,
                  "name": "attributeToFetch",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "898:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 99,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "898:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 102,
                  "indexed": false,
                  "name": "agreedValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 104,
                  "src": "927:18:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 101,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "856:93:1"
            },
            "src": "835:115:1"
          },
          {
            "body": {
              "id": 191,
              "nodeType": "Block",
              "src": "1059:741:1",
              "statements": [
                {
                  "assignments": [
                    112
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 112,
                      "name": "lenght",
                      "nodeType": "VariableDeclaration",
                      "scope": 191,
                      "src": "1102:11:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 111,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "1102:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 123,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 116,
                            "name": "currentId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64,
                            "src": "1138:9:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "35",
                            "id": 117,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1149:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_5_by_1",
                              "typeString": "int_const 5"
                            },
                            "value": "5"
                          },
                          {
                            "argumentTypes": null,
                            "id": 118,
                            "name": "urlToQuery",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 106,
                            "src": "1152:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 119,
                            "name": "attributeToFetch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 108,
                            "src": "1164:16:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 120,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1182:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_rational_5_by_1",
                              "typeString": "int_const 5"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string memory"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            }
                          ],
                          "id": 115,
                          "name": "Request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 86,
                          "src": "1130:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Request_$86_storage_ptr_$",
                            "typeString": "type(struct Oracle.Request storage pointer)"
                          }
                        },
                        "id": 121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1130:55:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$86_memory",
                          "typeString": "struct Oracle.Request memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Request_$86_memory",
                          "typeString": "struct Oracle.Request memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 113,
                        "name": "requests",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 61,
                        "src": "1116:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
                          "typeString": "struct Oracle.Request storage ref[] storage ref"
                        }
                      },
                      "id": 114,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1116:13:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Request_$86_storage_$returns$_t_uint256_$",
                        "typeString": "function (struct Oracle.Request storage ref) returns (uint256)"
                      }
                    },
                    "id": 122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1116:70:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1102:84:1"
                },
                {
                  "assignments": [
                    125
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 125,
                      "name": "r",
                      "nodeType": "VariableDeclaration",
                      "scope": 191,
                      "src": "1192:17:1",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                        "typeString": "struct Oracle.Request"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 124,
                        "name": "Request",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 86,
                        "src": "1192:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                          "typeString": "struct Oracle.Request"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 131,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 126,
                      "name": "requests",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 61,
                      "src": "1212:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
                        "typeString": "struct Oracle.Request storage ref[] storage ref"
                      }
                    },
                    "id": 130,
                    "indexExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 129,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 127,
                        "name": "lenght",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 112,
                        "src": "1221:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "31",
                        "id": 128,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1228:1:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "1221:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1212:18:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$86_storage",
                      "typeString": "struct Oracle.Request storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1192:38:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 132,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1270:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 137,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1270:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 138,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307836633233333962343646343161303666303943413030353164644144353444316535383262413737",
                            "id": 135,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1287:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1279:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1279:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1270:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1334:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1270:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 141,
                  "nodeType": "ExpressionStatement",
                  "src": "1270:65:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 142,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1341:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 147,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1341:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 148,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307862353334364346323234633032313836363036653566383945414343323165433235333938303737",
                            "id": 145,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1358:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0xb5346CF224c02186606e5f89EACC21eC25398077"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 144,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1350:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1350:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1341:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1405:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1341:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 151,
                  "nodeType": "ExpressionStatement",
                  "src": "1341:65:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 160,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 152,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1412:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 157,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1412:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 158,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307861323939374631434133363344313161306133356242314163304666373834396263313365393134",
                            "id": 155,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1429:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 154,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1421:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 156,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1421:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1412:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 159,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1476:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1412:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 161,
                  "nodeType": "ExpressionStatement",
                  "src": "1412:65:1"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 163,
                        "name": "currentId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64,
                        "src": "1578:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 164,
                        "name": "urlToQuery",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 106,
                        "src": "1595:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 165,
                        "name": "attributeToFetch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1613:16:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 162,
                      "name": "NewRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 94,
                      "src": "1559:10:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,string memory,string memory)"
                      }
                    },
                    "id": 166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1559:76:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 171,
                  "nodeType": "ExpressionStatement",
                  "src": "1483:65:1",
                  "expression": {
                    "argumentTypes": null,
                    "id": 170,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 162,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1483:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 167,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1483:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 168,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307839383638393764393032624543353842454234443264364631393038356365463331323838413139",
                            "id": 165,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1500:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0x986897d902bEC58BEB4D2d6F19085ceF31288A19"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1492:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 166,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1492:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1483:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 169,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1547:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1483:65:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Assignment",
                    "operator": "=",
                    "prefix": false,
                    "src": "1554:65:1",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 168,
                      "name": "currentId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64,
                      "src": "1642:9:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 172,
                          "name": "r",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 125,
                          "src": "1554:1:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 177,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1554:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 178,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307832664537376341423537663936323434303836424438463666654564316264663935304336443365",
                            "id": 175,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1571:42:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            },
                            "value": "0x2fE77cAB57f96244086BD8F6feEd1bdf950C6D3e"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 174,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1563:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 176,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1563:51:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1554:61:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1618:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    }
                  },
                  "id": 181,
                  "nodeType": "ExpressionStatement",
                  "src": "1554:65:1"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 183,
                        "name": "currentId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64,
                        "src": "1720:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 184,
                        "name": "urlToQuery",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 106,
                        "src": "1737:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 185,
                        "name": "attributeToFetch",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1755:16:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 182,
                      "name": "NewRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 94,
                      "src": "1701:10:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (uint256,string memory,string memory)"
                      }
                    },
                    "id": 186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1701:76:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 187,
                  "nodeType": "EmitStatement",
                  "src": "1696:81:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "1784:11:1",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 188,
                      "name": "currentId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64,
                      "src": "1784:9:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 190,
                  "nodeType": "ExpressionStatement",
                  "src": "1784:11:1"
                }
              ]
            },
            "documentation": null,
            "id": 192,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 106,
                  "name": "urlToQuery",
                  "nodeType": "VariableDeclaration",
                  "scope": 192,
                  "src": "983:24:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 105,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 108,
                  "name": "attributeToFetch",
                  "nodeType": "VariableDeclaration",
                  "scope": 192,
                  "src": "1013:30:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 107,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1013:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "977:70:1"
            },
            "returnParameters": {
              "id": 110,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1059:0:1"
            },
            "scope": 331,
            "src": "954:846:1",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 329,
              "nodeType": "Block",
              "src": "1888:1067:1",
              "statements": [
                {
                  "assignments": [
                    200
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 200,
                      "name": "currRequest",
                      "nodeType": "VariableDeclaration",
                      "scope": 329,
                      "src": "1895:27:1",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                        "typeString": "struct Oracle.Request"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 199,
                        "name": "Request",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 86,
                        "src": "1895:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                          "typeString": "struct Oracle.Request"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 204,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 201,
                      "name": "requests",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 61,
                      "src": "1925:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Request_$86_storage_$dyn_storage",
                        "typeString": "struct Oracle.Request storage ref[] storage ref"
                      }
                    },
                    "id": 203,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 202,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 194,
                      "src": "1934:3:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "1925:13:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$86_storage",
                      "typeString": "struct Oracle.Request storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1895:43:1"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 213,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 205,
                          "name": "currRequest",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 200,
                          "src": "1948:11:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                            "typeString": "struct Oracle.Request storage pointer"
                          }
                        },
                        "id": 206,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "quorum",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 85,
                        "src": "1948:18:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 211,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 208,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 346,
                              "src": "1975:3:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 209,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1975:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1967:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 210,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1967:19:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1948:39:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 212,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1991:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "1948:44:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 328,
                  "nodeType": "IfStatement",
                  "src": "1945:1006:1",
                  "trueBody": {
                    "id": 327,
                    "nodeType": "Block",
                    "src": "1993:958:1",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 221,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 214,
                                "name": "currRequest",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 200,
                                "src": "2050:11:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                  "typeString": "struct Oracle.Request storage pointer"
                                }
                              },
                              "id": 218,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "quorum",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 85,
                              "src": "2050:18:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 219,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 216,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 346,
                                "src": "2069:3:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 217,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "2069:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2050:30:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "32",
                            "id": 220,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2083:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "2"
                          },
                          "src": "2050:34:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 222,
                        "nodeType": "ExpressionStatement",
                        "src": "2050:34:1"
                      },
                      {
                        "assignments": [
                          224
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 224,
                            "name": "tmpI",
                            "nodeType": "VariableDeclaration",
                            "scope": 327,
                            "src": "2093:9:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 223,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "2093:4:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 226,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 225,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2105:1:1",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2093:13:1"
                      },
                      {
                        "assignments": [
                          228
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 228,
                            "name": "found",
                            "nodeType": "VariableDeclaration",
                            "scope": 327,
                            "src": "2114:10:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 227,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "2114:4:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 230,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "66616c7365",
                          "id": 229,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2127:5:1",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2114:18:1"
                      },
                      {
                        "body": {
                          "id": 259,
                          "nodeType": "Block",
                          "src": "2154:202:1",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 241,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 234,
                                            "name": "currRequest",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 200,
                                            "src": "2205:11:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                              "typeString": "struct Oracle.Request storage pointer"
                                            }
                                          },
                                          "id": 235,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "anwers",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 81,
                                          "src": "2205:18:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                            "typeString": "mapping(uint256 => string storage ref)"
                                          }
                                        },
                                        "id": 237,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 236,
                                          "name": "tmpI",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 224,
                                          "src": "2224:4:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "2205:24:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_storage",
                                          "typeString": "string storage ref"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_storage",
                                          "typeString": "string storage ref"
                                        }
                                      ],
                                      "id": 233,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "2199:5:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                        "typeString": "type(bytes storage pointer)"
                                      },
                                      "typeName": "bytes"
                                    },
                                    "id": 238,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "2199:31:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes storage pointer"
                                    }
                                  },
                                  "id": 239,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "2199:38:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 240,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2241:1:1",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "2199:43:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 255,
                              "nodeType": "IfStatement",
                              "src": "2196:136:1",
                              "trueBody": {
                                "id": 254,
                                "nodeType": "Block",
                                "src": "2243:89:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 244,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 242,
                                        "name": "found",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 228,
                                        "src": "2255:5:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 243,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2263:4:1",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "2255:12:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 245,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2255:12:1"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 252,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 246,
                                            "name": "currRequest",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 200,
                                            "src": "2279:11:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                              "typeString": "struct Oracle.Request storage pointer"
                                            }
                                          },
                                          "id": 249,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "anwers",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 81,
                                          "src": "2279:18:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                            "typeString": "mapping(uint256 => string storage ref)"
                                          }
                                        },
                                        "id": 250,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 248,
                                          "name": "tmpI",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 224,
                                          "src": "2298:4:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "2279:24:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_storage",
                                          "typeString": "string storage ref"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 251,
                                        "name": "_valueRetrieved",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 196,
                                        "src": "2306:15:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "src": "2279:42:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "id": 253,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2279:42:1"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 257,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": false,
                                "src": "2341:6:1",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 256,
                                  "name": "tmpI",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 224,
                                  "src": "2341:4:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 258,
                              "nodeType": "ExpressionStatement",
                              "src": "2341:6:1"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "id": 232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "2146:6:1",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 231,
                            "name": "found",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 228,
                            "src": "2147:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 260,
                        "nodeType": "WhileStatement",
                        "src": "2140:216:1"
                      },
                      {
                        "assignments": [
                          262
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 262,
                            "name": "currentQuorum",
                            "nodeType": "VariableDeclaration",
                            "scope": 327,
                            "src": "2364:18:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 261,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "2364:4:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 264,
                        "initialValue": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 263,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2385:1:1",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2364:22:1"
                      },
                      {
                        "body": {
                          "id": 325,
                          "nodeType": "Block",
                          "src": "2444:501:1",
                          "statements": [
                            {
                              "assignments": [
                                277
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 277,
                                  "name": "a",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 325,
                                  "src": "2454:14:1",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 276,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2454:5:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 284,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 279,
                                        "name": "currRequest",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 200,
                                        "src": "2477:11:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                          "typeString": "struct Oracle.Request storage pointer"
                                        }
                                      },
                                      "id": 280,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "anwers",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 81,
                                      "src": "2477:18:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                        "typeString": "mapping(uint256 => string storage ref)"
                                      }
                                    },
                                    "id": 282,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 281,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 266,
                                      "src": "2496:1:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "2477:21:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  ],
                                  "id": 278,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2471:5:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 283,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2471:28:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_storage_ptr",
                                  "typeString": "bytes storage pointer"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "2454:45:1"
                            },
                            {
                              "assignments": [
                                286
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 286,
                                  "name": "b",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 325,
                                  "src": "2509:14:1",
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes"
                                  },
                                  "typeName": {
                                    "id": 285,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2509:5:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 290,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 288,
                                    "name": "_valueRetrieved",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 196,
                                    "src": "2532:15:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 287,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2526:5:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 289,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2526:22:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "2509:39:1"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 297,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 292,
                                      "name": "a",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 277,
                                      "src": "2572:1:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 291,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 340,
                                    "src": "2562:9:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 293,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2562:12:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 295,
                                      "name": "b",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 286,
                                      "src": "2588:1:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes_memory_ptr",
                                        "typeString": "bytes memory"
                                      }
                                    ],
                                    "id": 294,
                                    "name": "keccak256",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 340,
                                    "src": "2578:9:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (bytes memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 296,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2578:12:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "2562:28:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 324,
                              "nodeType": "IfStatement",
                              "src": "2559:378:1",
                              "trueBody": {
                                "id": 323,
                                "nodeType": "Block",
                                "src": "2591:346:1",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 299,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "2603:15:1",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 298,
                                        "name": "currentQuorum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 262,
                                        "src": "2603:13:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 300,
                                    "nodeType": "ExpressionStatement",
                                    "src": "2603:15:1"
                                  },
                                  {
                                    "condition": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 303,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "id": 301,
                                        "name": "currentQuorum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 262,
                                        "src": "2633:13:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">=",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 302,
                                        "name": "minQuorum",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 67,
                                        "src": "2650:9:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "2633:26:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseBody": null,
                                    "id": 322,
                                    "nodeType": "IfStatement",
                                    "src": "2630:297:1",
                                    "trueBody": {
                                      "id": 321,
                                      "nodeType": "Block",
                                      "src": "2660:267:1",
                                      "statements": [
                                        {
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 308,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                              "argumentTypes": null,
                                              "expression": {
                                                "argumentTypes": null,
                                                "id": 304,
                                                "name": "currRequest",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 200,
                                                "src": "2674:11:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                  "typeString": "struct Oracle.Request storage pointer"
                                                }
                                              },
                                              "id": 306,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": true,
                                              "memberName": "agreedValue",
                                              "nodeType": "MemberAccess",
                                              "referencedDeclaration": 77,
                                              "src": "2674:23:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_storage",
                                                "typeString": "string storage ref"
                                              }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                              "argumentTypes": null,
                                              "id": 307,
                                              "name": "_valueRetrieved",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 196,
                                              "src": "2700:15:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_string_memory_ptr",
                                                "typeString": "string memory"
                                              }
                                            },
                                            "src": "2674:41:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_string_storage",
                                              "typeString": "string storage ref"
                                            }
                                          },
                                          "id": 309,
                                          "nodeType": "ExpressionStatement",
                                          "src": "2674:41:1"
                                        },
                                        {
                                          "eventCall": {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 311,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2765:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 312,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "id",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 69,
                                                "src": "2765:14:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 313,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2795:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 314,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "urlToQuery",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 73,
                                                "src": "2795:22:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 315,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2833:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 316,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "attributeToFetch",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 75,
                                                "src": "2833:28:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "expression": {
                                                  "argumentTypes": null,
                                                  "id": 317,
                                                  "name": "currRequest",
                                                  "nodeType": "Identifier",
                                                  "overloadedDeclarations": [],
                                                  "referencedDeclaration": 200,
                                                  "src": "2877:11:1",
                                                  "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                                    "typeString": "struct Oracle.Request storage pointer"
                                                  }
                                                },
                                                "id": 318,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "agreedValue",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 77,
                                                "src": "2877:23:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                },
                                                {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                },
                                                {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                },
                                                {
                                                  "typeIdentifier": "t_string_storage",
                                                  "typeString": "string storage ref"
                                                }
                                              ],
                                              "id": 310,
                                              "name": "UpdatedRequest",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 104,
                                              "src": "2734:14:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (uint256,string memory,string memory,string memory)"
                                              }
                                            },
                                            "id": 319,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "2734:180:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_tuple$__$",
                                              "typeString": "tuple()"
                                            }
                                          },
                                          "id": 320,
                                          "nodeType": "EmitStatement",
                                          "src": "2729:185:1"
                                        }
                                      ]
                                    }
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 272,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 269,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 266,
                            "src": "2411:1:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 270,
                              "name": "currRequest",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 200,
                              "src": "2415:11:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Request_$86_storage_ptr",
                                "typeString": "struct Oracle.Request storage pointer"
                              }
                            },
                            "id": 271,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "oracleCount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 71,
                            "src": "2415:23:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2411:27:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 326,
                        "initializationExpression": {
                          "assignments": [
                            266
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 266,
                              "name": "i",
                              "nodeType": "VariableDeclaration",
                              "scope": 326,
                              "src": "2399:6:1",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 265,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "2399:4:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 268,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 267,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2408:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "2399:10:1"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 274,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "2440:3:1",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 273,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 266,
                              "src": "2440:1:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 275,
                          "nodeType": "ExpressionStatement",
                          "src": "2440:3:1"
                        },
                        "nodeType": "ForStatement",
                        "src": "2395:550:1"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 330,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "updateRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 194,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 330,
                  "src": "1833:8:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1833:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 196,
                  "name": "_valueRetrieved",
                  "nodeType": "VariableDeclaration",
                  "scope": 330,
                  "src": "1847:29:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 195,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1847:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1827:53:1"
            },
            "returnParameters": {
              "id": 198,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1888:0:1"
            },
            "scope": 331,
            "src": "1804:1151:1",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 332,
        "src": "34:2923:1"
      }
    ],
    "src": "0:2958:1"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {
    "5777": {
      "events": {},
      "links": {},
      "address": "0x2724C509dF52d903274925906fd3163B73B95726",
      "transactionHash": "0x384c53351c5e46ef824c3c0c8d4e17727496a52d119acc3208971b2b7c791294"
    },
    "1558113948939": {
      "events": {},
      "links": {},
      "address": "0x1Fa272829f1EE075C21A60Ea4237867Fb881De31",
      "transactionHash": "0x89bf95d8238eab4e1f2cd2e598f8e5ae0fa6b97afdc2732947338a812bcccea6"
    }
  },
  "schemaVersion": "3.0.8",
  "updatedAt": "2019-05-21T15:17:28.478Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}