github.com/diadata-org/diadata@v1.4.593/pkg/dia/scraper/blockchain-scrapers/blockchains/ethereum/diaOracleService/DIAOracle.json (about) 1 { 2 "contractName": "DIAOracle", 3 "abi": [ 4 { 5 "inputs": [], 6 "stateMutability": "nonpayable", 7 "type": "constructor" 8 }, 9 { 10 "anonymous": false, 11 "inputs": [ 12 { 13 "indexed": false, 14 "internalType": "string", 15 "name": "key", 16 "type": "string" 17 }, 18 { 19 "indexed": false, 20 "internalType": "uint128", 21 "name": "value", 22 "type": "uint128" 23 }, 24 { 25 "indexed": false, 26 "internalType": "uint128", 27 "name": "timestamp", 28 "type": "uint128" 29 } 30 ], 31 "name": "OracleUpdate", 32 "type": "event" 33 }, 34 { 35 "anonymous": false, 36 "inputs": [ 37 { 38 "indexed": false, 39 "internalType": "address", 40 "name": "newUpdater", 41 "type": "address" 42 } 43 ], 44 "name": "UpdaterAddressChange", 45 "type": "event" 46 }, 47 { 48 "inputs": [ 49 { 50 "internalType": "string", 51 "name": "", 52 "type": "string" 53 } 54 ], 55 "name": "values", 56 "outputs": [ 57 { 58 "internalType": "uint256", 59 "name": "", 60 "type": "uint256" 61 } 62 ], 63 "stateMutability": "view", 64 "type": "function" 65 }, 66 { 67 "inputs": [ 68 { 69 "internalType": "string", 70 "name": "key", 71 "type": "string" 72 }, 73 { 74 "internalType": "uint128", 75 "name": "value", 76 "type": "uint128" 77 }, 78 { 79 "internalType": "uint128", 80 "name": "timestamp", 81 "type": "uint128" 82 } 83 ], 84 "name": "setValue", 85 "outputs": [], 86 "stateMutability": "nonpayable", 87 "type": "function" 88 }, 89 { 90 "inputs": [ 91 { 92 "internalType": "string", 93 "name": "key", 94 "type": "string" 95 } 96 ], 97 "name": "getValue", 98 "outputs": [ 99 { 100 "internalType": "uint128", 101 "name": "", 102 "type": "uint128" 103 }, 104 { 105 "internalType": "uint128", 106 "name": "", 107 "type": "uint128" 108 } 109 ], 110 "stateMutability": "view", 111 "type": "function" 112 }, 113 { 114 "inputs": [ 115 { 116 "internalType": "address", 117 "name": "newOracleUpdaterAddress", 118 "type": "address" 119 } 120 ], 121 "name": "updateOracleUpdaterAddress", 122 "outputs": [], 123 "stateMutability": "nonpayable", 124 "type": "function" 125 } 126 ], 127 "metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"}],\"name\":\"OracleUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newUpdater\",\"type\":\"address\"}],\"name\":\"UpdaterAddressChange\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"getValue\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"}],\"name\":\"setValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOracleUpdaterAddress\",\"type\":\"address\"}],\"name\":\"updateOracleUpdaterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"values\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/DIAOracle.sol\":\"DIAOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/DIAOracle.sol\":{\"keccak256\":\"0x5829855de1e326bf86c5f8b70959014848accc15df5dacabdd3dc55ec5e6b9e4\",\"urls\":[\"bzz-raw://d13044ad71eb514f959e6b00ada7ccf4b9c67db6c7ead26997f5eb51bef33715\",\"dweb:/ipfs/QmWxTydr98dNyWYoBsj9xZ6P4RiDur49F9VaM8HQ7t1idv\"]}},\"version\":1}", 128 "bytecode": "0x608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610713806100616000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635a9ade8b146100515780636aa45efc146101205780637898e0c214610164578063960384a014610257575b600080fd5b61010a6004803603602081101561006757600080fd5b810190808035906020019064010000000081111561008457600080fd5b82018360208201111561009657600080fd5b803590602001918460018302840111640100000000831117156100b857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610351565b6040518082815260200191505060405180910390f35b6101626004803603602081101561013657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037f565b005b6102556004803603606081101561017a57600080fd5b810190808035906020019064010000000081111561019757600080fd5b8201836020820111156101a957600080fd5b803590602001918460018302840111640100000000831117156101cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080356fffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff16906020019092919050505061046a565b005b6103106004803603602081101561026d57600080fd5b810190808035906020019064010000000081111561028a57600080fd5b82018360208201111561029c57600080fd5b803590602001918460018302840111640100000000831117156102be57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610637565b60405180836fffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b6000818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f121e958a4cadf7f8dadefa22cc019700365240223668418faebed197da07089f81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c457600080fd5b6000816fffffffffffffffffffffffffffffffff166080846fffffffffffffffffffffffffffffffff16901b019050806000856040518082805190602001908083835b6020831061052a5780518252602082019150602081019050602083039250610507565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055507fa7fc99ed7617309ee23f63ae90196a1e490d362e6f6a547a59bc809ee22917828484846040518080602001846fffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156105f55780820151818401526020810190506105da565b50505050905090810190601f1680156106225780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150505050565b600080600080846040518082805190602001908083835b60208310610671578051825260208201915060208101905060208303925061064e565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050600070010000000000000000000000000000000082816106c357fe5b0690506000608083901c905080829450945050505091509156fea26469706673582212207c3735889b60a63f7f058773fe186f4265fc884cd792efba600772d7229f1d4964736f6c63430007040033", 129 "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80635a9ade8b146100515780636aa45efc146101205780637898e0c214610164578063960384a014610257575b600080fd5b61010a6004803603602081101561006757600080fd5b810190808035906020019064010000000081111561008457600080fd5b82018360208201111561009657600080fd5b803590602001918460018302840111640100000000831117156100b857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610351565b6040518082815260200191505060405180910390f35b6101626004803603602081101561013657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061037f565b005b6102556004803603606081101561017a57600080fd5b810190808035906020019064010000000081111561019757600080fd5b8201836020820111156101a957600080fd5b803590602001918460018302840111640100000000831117156101cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080356fffffffffffffffffffffffffffffffff16906020019092919080356fffffffffffffffffffffffffffffffff16906020019092919050505061046a565b005b6103106004803603602081101561026d57600080fd5b810190808035906020019064010000000081111561028a57600080fd5b82018360208201111561029c57600080fd5b803590602001918460018302840111640100000000831117156102be57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610637565b60405180836fffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019250505060405180910390f35b6000818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f121e958a4cadf7f8dadefa22cc019700365240223668418faebed197da07089f81604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c457600080fd5b6000816fffffffffffffffffffffffffffffffff166080846fffffffffffffffffffffffffffffffff16901b019050806000856040518082805190602001908083835b6020831061052a5780518252602082019150602081019050602083039250610507565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055507fa7fc99ed7617309ee23f63ae90196a1e490d362e6f6a547a59bc809ee22917828484846040518080602001846fffffffffffffffffffffffffffffffff168152602001836fffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156105f55780820151818401526020810190506105da565b50505050905090810190601f1680156106225780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150505050565b600080600080846040518082805190602001908083835b60208310610671578051825260208201915060208101905060208303925061064e565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549050600070010000000000000000000000000000000082816106c357fe5b0690506000608083901c905080829450945050505091509156fea26469706673582212207c3735889b60a63f7f058773fe186f4265fc884cd792efba600772d7229f1d4964736f6c63430007040033", 130 "immutableReferences": {}, 131 "generatedSources": [], 132 "deployedGeneratedSources": [], 133 "sourceMap": "24:1097:0:-:0;;;255:57;;;;;;;;;;295:10;279:13;;:26;;;;;;;;;;;;;;;;;;24:1097;;;;;;", 134 "deployedSourceMap": "24:1097:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;881:238;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;322:277;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;609:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;881:238::-;989:13;;;;;;;;;;;975:27;;:10;:27;;;967:36;;;;;;1029:23;1013:13;;:39;;;;;;;;;;;;;;;;;;1067:45;1088:23;1067:45;;;;;;;;;;;;;;;;;;;;881:238;:::o;322:277::-;432:13;;;;;;;;;;;418:27;;:10;:27;;;410:36;;;;;;456:14;503:9;473:39;;496:3;485:5;475:16;;474:25;;473:39;456:56;;536:6;522;529:3;522:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;557:35;570:3;575:5;582:9;557:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:277;;;;:::o;609:262::-;667:7;676;695:14;712:6;719:3;712:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:28;;733:17;772:6;763;:15;;;;;;733:46;;789:13;825:3;815:6;:13;;789:40;;847:5;854:9;839:25;;;;;;;609:262;;;:::o", 135 "source": "pragma solidity 0.7.4;\n\ncontract DIAOracle {\n mapping (string => uint256) public values;\n address oracleUpdater;\n \n event OracleUpdate(string key, uint128 value, uint128 timestamp);\n event UpdaterAddressChange(address newUpdater);\n \n constructor() {\n oracleUpdater = msg.sender;\n }\n \n function setValue(string memory key, uint128 value, uint128 timestamp) public {\n require(msg.sender == oracleUpdater);\n uint256 cValue = (((uint256)(value)) << 128) + timestamp;\n values[key] = cValue;\n emit OracleUpdate(key, value, timestamp);\n }\n \n function getValue(string memory key) public view returns (uint128, uint128) {\n uint256 cValue = values[key];\n uint128 timestamp = (uint128)(cValue % 2**128);\n uint128 value = (uint128)(cValue >> 128);\n return (value, timestamp);\n }\n \n function updateOracleUpdaterAddress(address newOracleUpdaterAddress) public {\n require(msg.sender == oracleUpdater);\n oracleUpdater = newOracleUpdaterAddress;\n emit UpdaterAddressChange(newOracleUpdaterAddress);\n }\n}\n", 136 "sourcePath": "/tmp/foo/contracts/DIAOracle.sol", 137 "ast": { 138 "absolutePath": "project:/contracts/DIAOracle.sol", 139 "exportedSymbols": { 140 "DIAOracle": [ 141 135 142 ] 143 }, 144 "id": 136, 145 "nodeType": "SourceUnit", 146 "nodes": [ 147 { 148 "id": 1, 149 "literals": [ 150 "solidity", 151 "0.7", 152 ".4" 153 ], 154 "nodeType": "PragmaDirective", 155 "src": "0:22:0" 156 }, 157 { 158 "abstract": false, 159 "baseContracts": [], 160 "contractDependencies": [], 161 "contractKind": "contract", 162 "fullyImplemented": true, 163 "id": 135, 164 "linearizedBaseContracts": [ 165 135 166 ], 167 "name": "DIAOracle", 168 "nodeType": "ContractDefinition", 169 "nodes": [ 170 { 171 "constant": false, 172 "functionSelector": "5a9ade8b", 173 "id": 5, 174 "mutability": "mutable", 175 "name": "values", 176 "nodeType": "VariableDeclaration", 177 "scope": 135, 178 "src": "49:41:0", 179 "stateVariable": true, 180 "storageLocation": "default", 181 "typeDescriptions": { 182 "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_uint256_$", 183 "typeString": "mapping(string => uint256)" 184 }, 185 "typeName": { 186 "id": 4, 187 "keyType": { 188 "id": 2, 189 "name": "string", 190 "nodeType": "ElementaryTypeName", 191 "src": "58:6:0", 192 "typeDescriptions": { 193 "typeIdentifier": "t_string_storage_ptr", 194 "typeString": "string" 195 } 196 }, 197 "nodeType": "Mapping", 198 "src": "49:27:0", 199 "typeDescriptions": { 200 "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_uint256_$", 201 "typeString": "mapping(string => uint256)" 202 }, 203 "valueType": { 204 "id": 3, 205 "name": "uint256", 206 "nodeType": "ElementaryTypeName", 207 "src": "68:7:0", 208 "typeDescriptions": { 209 "typeIdentifier": "t_uint256", 210 "typeString": "uint256" 211 } 212 } 213 }, 214 "visibility": "public" 215 }, 216 { 217 "constant": false, 218 "id": 7, 219 "mutability": "mutable", 220 "name": "oracleUpdater", 221 "nodeType": "VariableDeclaration", 222 "scope": 135, 223 "src": "96:21:0", 224 "stateVariable": true, 225 "storageLocation": "default", 226 "typeDescriptions": { 227 "typeIdentifier": "t_address", 228 "typeString": "address" 229 }, 230 "typeName": { 231 "id": 6, 232 "name": "address", 233 "nodeType": "ElementaryTypeName", 234 "src": "96:7:0", 235 "stateMutability": "nonpayable", 236 "typeDescriptions": { 237 "typeIdentifier": "t_address", 238 "typeString": "address" 239 } 240 }, 241 "visibility": "internal" 242 }, 243 { 244 "anonymous": false, 245 "id": 15, 246 "name": "OracleUpdate", 247 "nodeType": "EventDefinition", 248 "parameters": { 249 "id": 14, 250 "nodeType": "ParameterList", 251 "parameters": [ 252 { 253 "constant": false, 254 "id": 9, 255 "indexed": false, 256 "mutability": "mutable", 257 "name": "key", 258 "nodeType": "VariableDeclaration", 259 "scope": 15, 260 "src": "147:10:0", 261 "stateVariable": false, 262 "storageLocation": "default", 263 "typeDescriptions": { 264 "typeIdentifier": "t_string_memory_ptr", 265 "typeString": "string" 266 }, 267 "typeName": { 268 "id": 8, 269 "name": "string", 270 "nodeType": "ElementaryTypeName", 271 "src": "147:6:0", 272 "typeDescriptions": { 273 "typeIdentifier": "t_string_storage_ptr", 274 "typeString": "string" 275 } 276 }, 277 "visibility": "internal" 278 }, 279 { 280 "constant": false, 281 "id": 11, 282 "indexed": false, 283 "mutability": "mutable", 284 "name": "value", 285 "nodeType": "VariableDeclaration", 286 "scope": 15, 287 "src": "159:13:0", 288 "stateVariable": false, 289 "storageLocation": "default", 290 "typeDescriptions": { 291 "typeIdentifier": "t_uint128", 292 "typeString": "uint128" 293 }, 294 "typeName": { 295 "id": 10, 296 "name": "uint128", 297 "nodeType": "ElementaryTypeName", 298 "src": "159:7:0", 299 "typeDescriptions": { 300 "typeIdentifier": "t_uint128", 301 "typeString": "uint128" 302 } 303 }, 304 "visibility": "internal" 305 }, 306 { 307 "constant": false, 308 "id": 13, 309 "indexed": false, 310 "mutability": "mutable", 311 "name": "timestamp", 312 "nodeType": "VariableDeclaration", 313 "scope": 15, 314 "src": "174:17:0", 315 "stateVariable": false, 316 "storageLocation": "default", 317 "typeDescriptions": { 318 "typeIdentifier": "t_uint128", 319 "typeString": "uint128" 320 }, 321 "typeName": { 322 "id": 12, 323 "name": "uint128", 324 "nodeType": "ElementaryTypeName", 325 "src": "174:7:0", 326 "typeDescriptions": { 327 "typeIdentifier": "t_uint128", 328 "typeString": "uint128" 329 } 330 }, 331 "visibility": "internal" 332 } 333 ], 334 "src": "146:46:0" 335 }, 336 "src": "128:65:0" 337 }, 338 { 339 "anonymous": false, 340 "id": 19, 341 "name": "UpdaterAddressChange", 342 "nodeType": "EventDefinition", 343 "parameters": { 344 "id": 18, 345 "nodeType": "ParameterList", 346 "parameters": [ 347 { 348 "constant": false, 349 "id": 17, 350 "indexed": false, 351 "mutability": "mutable", 352 "name": "newUpdater", 353 "nodeType": "VariableDeclaration", 354 "scope": 19, 355 "src": "225:18:0", 356 "stateVariable": false, 357 "storageLocation": "default", 358 "typeDescriptions": { 359 "typeIdentifier": "t_address", 360 "typeString": "address" 361 }, 362 "typeName": { 363 "id": 16, 364 "name": "address", 365 "nodeType": "ElementaryTypeName", 366 "src": "225:7:0", 367 "stateMutability": "nonpayable", 368 "typeDescriptions": { 369 "typeIdentifier": "t_address", 370 "typeString": "address" 371 } 372 }, 373 "visibility": "internal" 374 } 375 ], 376 "src": "224:20:0" 377 }, 378 "src": "198:47:0" 379 }, 380 { 381 "body": { 382 "id": 27, 383 "nodeType": "Block", 384 "src": "269:43:0", 385 "statements": [ 386 { 387 "expression": { 388 "id": 25, 389 "isConstant": false, 390 "isLValue": false, 391 "isPure": false, 392 "lValueRequested": false, 393 "leftHandSide": { 394 "id": 22, 395 "name": "oracleUpdater", 396 "nodeType": "Identifier", 397 "overloadedDeclarations": [], 398 "referencedDeclaration": 7, 399 "src": "279:13:0", 400 "typeDescriptions": { 401 "typeIdentifier": "t_address", 402 "typeString": "address" 403 } 404 }, 405 "nodeType": "Assignment", 406 "operator": "=", 407 "rightHandSide": { 408 "expression": { 409 "id": 23, 410 "name": "msg", 411 "nodeType": "Identifier", 412 "overloadedDeclarations": [], 413 "referencedDeclaration": -15, 414 "src": "295:3:0", 415 "typeDescriptions": { 416 "typeIdentifier": "t_magic_message", 417 "typeString": "msg" 418 } 419 }, 420 "id": 24, 421 "isConstant": false, 422 "isLValue": false, 423 "isPure": false, 424 "lValueRequested": false, 425 "memberName": "sender", 426 "nodeType": "MemberAccess", 427 "src": "295:10:0", 428 "typeDescriptions": { 429 "typeIdentifier": "t_address_payable", 430 "typeString": "address payable" 431 } 432 }, 433 "src": "279:26:0", 434 "typeDescriptions": { 435 "typeIdentifier": "t_address", 436 "typeString": "address" 437 } 438 }, 439 "id": 26, 440 "nodeType": "ExpressionStatement", 441 "src": "279:26:0" 442 } 443 ] 444 }, 445 "id": 28, 446 "implemented": true, 447 "kind": "constructor", 448 "modifiers": [], 449 "name": "", 450 "nodeType": "FunctionDefinition", 451 "parameters": { 452 "id": 20, 453 "nodeType": "ParameterList", 454 "parameters": [], 455 "src": "266:2:0" 456 }, 457 "returnParameters": { 458 "id": 21, 459 "nodeType": "ParameterList", 460 "parameters": [], 461 "src": "269:0:0" 462 }, 463 "scope": 135, 464 "src": "255:57:0", 465 "stateMutability": "nonpayable", 466 "virtual": false, 467 "visibility": "public" 468 }, 469 { 470 "body": { 471 "id": 70, 472 "nodeType": "Block", 473 "src": "400:199:0", 474 "statements": [ 475 { 476 "expression": { 477 "arguments": [ 478 { 479 "commonType": { 480 "typeIdentifier": "t_address", 481 "typeString": "address" 482 }, 483 "id": 41, 484 "isConstant": false, 485 "isLValue": false, 486 "isPure": false, 487 "lValueRequested": false, 488 "leftExpression": { 489 "expression": { 490 "id": 38, 491 "name": "msg", 492 "nodeType": "Identifier", 493 "overloadedDeclarations": [], 494 "referencedDeclaration": -15, 495 "src": "418:3:0", 496 "typeDescriptions": { 497 "typeIdentifier": "t_magic_message", 498 "typeString": "msg" 499 } 500 }, 501 "id": 39, 502 "isConstant": false, 503 "isLValue": false, 504 "isPure": false, 505 "lValueRequested": false, 506 "memberName": "sender", 507 "nodeType": "MemberAccess", 508 "src": "418:10:0", 509 "typeDescriptions": { 510 "typeIdentifier": "t_address_payable", 511 "typeString": "address payable" 512 } 513 }, 514 "nodeType": "BinaryOperation", 515 "operator": "==", 516 "rightExpression": { 517 "id": 40, 518 "name": "oracleUpdater", 519 "nodeType": "Identifier", 520 "overloadedDeclarations": [], 521 "referencedDeclaration": 7, 522 "src": "432:13:0", 523 "typeDescriptions": { 524 "typeIdentifier": "t_address", 525 "typeString": "address" 526 } 527 }, 528 "src": "418:27:0", 529 "typeDescriptions": { 530 "typeIdentifier": "t_bool", 531 "typeString": "bool" 532 } 533 } 534 ], 535 "expression": { 536 "argumentTypes": [ 537 { 538 "typeIdentifier": "t_bool", 539 "typeString": "bool" 540 } 541 ], 542 "id": 37, 543 "name": "require", 544 "nodeType": "Identifier", 545 "overloadedDeclarations": [ 546 -18, 547 -18 548 ], 549 "referencedDeclaration": -18, 550 "src": "410:7:0", 551 "typeDescriptions": { 552 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", 553 "typeString": "function (bool) pure" 554 } 555 }, 556 "id": 42, 557 "isConstant": false, 558 "isLValue": false, 559 "isPure": false, 560 "kind": "functionCall", 561 "lValueRequested": false, 562 "names": [], 563 "nodeType": "FunctionCall", 564 "src": "410:36:0", 565 "tryCall": false, 566 "typeDescriptions": { 567 "typeIdentifier": "t_tuple$__$", 568 "typeString": "tuple()" 569 } 570 }, 571 "id": 43, 572 "nodeType": "ExpressionStatement", 573 "src": "410:36:0" 574 }, 575 { 576 "assignments": [ 577 45 578 ], 579 "declarations": [ 580 { 581 "constant": false, 582 "id": 45, 583 "mutability": "mutable", 584 "name": "cValue", 585 "nodeType": "VariableDeclaration", 586 "scope": 70, 587 "src": "456:14:0", 588 "stateVariable": false, 589 "storageLocation": "default", 590 "typeDescriptions": { 591 "typeIdentifier": "t_uint256", 592 "typeString": "uint256" 593 }, 594 "typeName": { 595 "id": 44, 596 "name": "uint256", 597 "nodeType": "ElementaryTypeName", 598 "src": "456:7:0", 599 "typeDescriptions": { 600 "typeIdentifier": "t_uint256", 601 "typeString": "uint256" 602 } 603 }, 604 "visibility": "internal" 605 } 606 ], 607 "id": 57, 608 "initialValue": { 609 "commonType": { 610 "typeIdentifier": "t_uint256", 611 "typeString": "uint256" 612 }, 613 "id": 56, 614 "isConstant": false, 615 "isLValue": false, 616 "isPure": false, 617 "lValueRequested": false, 618 "leftExpression": { 619 "components": [ 620 { 621 "commonType": { 622 "typeIdentifier": "t_uint256", 623 "typeString": "uint256" 624 }, 625 "id": 53, 626 "isConstant": false, 627 "isLValue": false, 628 "isPure": false, 629 "lValueRequested": false, 630 "leftExpression": { 631 "components": [ 632 { 633 "arguments": [ 634 { 635 "id": 49, 636 "name": "value", 637 "nodeType": "Identifier", 638 "overloadedDeclarations": [], 639 "referencedDeclaration": 32, 640 "src": "485:5:0", 641 "typeDescriptions": { 642 "typeIdentifier": "t_uint128", 643 "typeString": "uint128" 644 } 645 } 646 ], 647 "expression": { 648 "argumentTypes": [ 649 { 650 "typeIdentifier": "t_uint128", 651 "typeString": "uint128" 652 } 653 ], 654 "components": [ 655 { 656 "id": 47, 657 "isConstant": false, 658 "isLValue": false, 659 "isPure": true, 660 "lValueRequested": false, 661 "nodeType": "ElementaryTypeNameExpression", 662 "src": "476:7:0", 663 "typeDescriptions": { 664 "typeIdentifier": "t_type$_t_uint256_$", 665 "typeString": "type(uint256)" 666 }, 667 "typeName": { 668 "id": 46, 669 "name": "uint256", 670 "nodeType": "ElementaryTypeName", 671 "src": "476:7:0", 672 "typeDescriptions": {} 673 } 674 } 675 ], 676 "id": 48, 677 "isConstant": false, 678 "isInlineArray": false, 679 "isLValue": false, 680 "isPure": true, 681 "lValueRequested": false, 682 "nodeType": "TupleExpression", 683 "src": "475:9:0", 684 "typeDescriptions": { 685 "typeIdentifier": "t_type$_t_uint256_$", 686 "typeString": "type(uint256)" 687 } 688 }, 689 "id": 50, 690 "isConstant": false, 691 "isLValue": false, 692 "isPure": false, 693 "kind": "typeConversion", 694 "lValueRequested": false, 695 "names": [], 696 "nodeType": "FunctionCall", 697 "src": "475:16:0", 698 "tryCall": false, 699 "typeDescriptions": { 700 "typeIdentifier": "t_uint256", 701 "typeString": "uint256" 702 } 703 } 704 ], 705 "id": 51, 706 "isConstant": false, 707 "isInlineArray": false, 708 "isLValue": false, 709 "isPure": false, 710 "lValueRequested": false, 711 "nodeType": "TupleExpression", 712 "src": "474:18:0", 713 "typeDescriptions": { 714 "typeIdentifier": "t_uint256", 715 "typeString": "uint256" 716 } 717 }, 718 "nodeType": "BinaryOperation", 719 "operator": "<<", 720 "rightExpression": { 721 "hexValue": "313238", 722 "id": 52, 723 "isConstant": false, 724 "isLValue": false, 725 "isPure": true, 726 "kind": "number", 727 "lValueRequested": false, 728 "nodeType": "Literal", 729 "src": "496:3:0", 730 "typeDescriptions": { 731 "typeIdentifier": "t_rational_128_by_1", 732 "typeString": "int_const 128" 733 }, 734 "value": "128" 735 }, 736 "src": "474:25:0", 737 "typeDescriptions": { 738 "typeIdentifier": "t_uint256", 739 "typeString": "uint256" 740 } 741 } 742 ], 743 "id": 54, 744 "isConstant": false, 745 "isInlineArray": false, 746 "isLValue": false, 747 "isPure": false, 748 "lValueRequested": false, 749 "nodeType": "TupleExpression", 750 "src": "473:27:0", 751 "typeDescriptions": { 752 "typeIdentifier": "t_uint256", 753 "typeString": "uint256" 754 } 755 }, 756 "nodeType": "BinaryOperation", 757 "operator": "+", 758 "rightExpression": { 759 "id": 55, 760 "name": "timestamp", 761 "nodeType": "Identifier", 762 "overloadedDeclarations": [], 763 "referencedDeclaration": 34, 764 "src": "503:9:0", 765 "typeDescriptions": { 766 "typeIdentifier": "t_uint128", 767 "typeString": "uint128" 768 } 769 }, 770 "src": "473:39:0", 771 "typeDescriptions": { 772 "typeIdentifier": "t_uint256", 773 "typeString": "uint256" 774 } 775 }, 776 "nodeType": "VariableDeclarationStatement", 777 "src": "456:56:0" 778 }, 779 { 780 "expression": { 781 "id": 62, 782 "isConstant": false, 783 "isLValue": false, 784 "isPure": false, 785 "lValueRequested": false, 786 "leftHandSide": { 787 "baseExpression": { 788 "id": 58, 789 "name": "values", 790 "nodeType": "Identifier", 791 "overloadedDeclarations": [], 792 "referencedDeclaration": 5, 793 "src": "522:6:0", 794 "typeDescriptions": { 795 "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_uint256_$", 796 "typeString": "mapping(string memory => uint256)" 797 } 798 }, 799 "id": 60, 800 "indexExpression": { 801 "id": 59, 802 "name": "key", 803 "nodeType": "Identifier", 804 "overloadedDeclarations": [], 805 "referencedDeclaration": 30, 806 "src": "529:3:0", 807 "typeDescriptions": { 808 "typeIdentifier": "t_string_memory_ptr", 809 "typeString": "string memory" 810 } 811 }, 812 "isConstant": false, 813 "isLValue": true, 814 "isPure": false, 815 "lValueRequested": true, 816 "nodeType": "IndexAccess", 817 "src": "522:11:0", 818 "typeDescriptions": { 819 "typeIdentifier": "t_uint256", 820 "typeString": "uint256" 821 } 822 }, 823 "nodeType": "Assignment", 824 "operator": "=", 825 "rightHandSide": { 826 "id": 61, 827 "name": "cValue", 828 "nodeType": "Identifier", 829 "overloadedDeclarations": [], 830 "referencedDeclaration": 45, 831 "src": "536:6:0", 832 "typeDescriptions": { 833 "typeIdentifier": "t_uint256", 834 "typeString": "uint256" 835 } 836 }, 837 "src": "522:20:0", 838 "typeDescriptions": { 839 "typeIdentifier": "t_uint256", 840 "typeString": "uint256" 841 } 842 }, 843 "id": 63, 844 "nodeType": "ExpressionStatement", 845 "src": "522:20:0" 846 }, 847 { 848 "eventCall": { 849 "arguments": [ 850 { 851 "id": 65, 852 "name": "key", 853 "nodeType": "Identifier", 854 "overloadedDeclarations": [], 855 "referencedDeclaration": 30, 856 "src": "570:3:0", 857 "typeDescriptions": { 858 "typeIdentifier": "t_string_memory_ptr", 859 "typeString": "string memory" 860 } 861 }, 862 { 863 "id": 66, 864 "name": "value", 865 "nodeType": "Identifier", 866 "overloadedDeclarations": [], 867 "referencedDeclaration": 32, 868 "src": "575:5:0", 869 "typeDescriptions": { 870 "typeIdentifier": "t_uint128", 871 "typeString": "uint128" 872 } 873 }, 874 { 875 "id": 67, 876 "name": "timestamp", 877 "nodeType": "Identifier", 878 "overloadedDeclarations": [], 879 "referencedDeclaration": 34, 880 "src": "582:9:0", 881 "typeDescriptions": { 882 "typeIdentifier": "t_uint128", 883 "typeString": "uint128" 884 } 885 } 886 ], 887 "expression": { 888 "argumentTypes": [ 889 { 890 "typeIdentifier": "t_string_memory_ptr", 891 "typeString": "string memory" 892 }, 893 { 894 "typeIdentifier": "t_uint128", 895 "typeString": "uint128" 896 }, 897 { 898 "typeIdentifier": "t_uint128", 899 "typeString": "uint128" 900 } 901 ], 902 "id": 64, 903 "name": "OracleUpdate", 904 "nodeType": "Identifier", 905 "overloadedDeclarations": [], 906 "referencedDeclaration": 15, 907 "src": "557:12:0", 908 "typeDescriptions": { 909 "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint128_$_t_uint128_$returns$__$", 910 "typeString": "function (string memory,uint128,uint128)" 911 } 912 }, 913 "id": 68, 914 "isConstant": false, 915 "isLValue": false, 916 "isPure": false, 917 "kind": "functionCall", 918 "lValueRequested": false, 919 "names": [], 920 "nodeType": "FunctionCall", 921 "src": "557:35:0", 922 "tryCall": false, 923 "typeDescriptions": { 924 "typeIdentifier": "t_tuple$__$", 925 "typeString": "tuple()" 926 } 927 }, 928 "id": 69, 929 "nodeType": "EmitStatement", 930 "src": "552:40:0" 931 } 932 ] 933 }, 934 "functionSelector": "7898e0c2", 935 "id": 71, 936 "implemented": true, 937 "kind": "function", 938 "modifiers": [], 939 "name": "setValue", 940 "nodeType": "FunctionDefinition", 941 "parameters": { 942 "id": 35, 943 "nodeType": "ParameterList", 944 "parameters": [ 945 { 946 "constant": false, 947 "id": 30, 948 "mutability": "mutable", 949 "name": "key", 950 "nodeType": "VariableDeclaration", 951 "scope": 71, 952 "src": "340:17:0", 953 "stateVariable": false, 954 "storageLocation": "memory", 955 "typeDescriptions": { 956 "typeIdentifier": "t_string_memory_ptr", 957 "typeString": "string" 958 }, 959 "typeName": { 960 "id": 29, 961 "name": "string", 962 "nodeType": "ElementaryTypeName", 963 "src": "340:6:0", 964 "typeDescriptions": { 965 "typeIdentifier": "t_string_storage_ptr", 966 "typeString": "string" 967 } 968 }, 969 "visibility": "internal" 970 }, 971 { 972 "constant": false, 973 "id": 32, 974 "mutability": "mutable", 975 "name": "value", 976 "nodeType": "VariableDeclaration", 977 "scope": 71, 978 "src": "359:13:0", 979 "stateVariable": false, 980 "storageLocation": "default", 981 "typeDescriptions": { 982 "typeIdentifier": "t_uint128", 983 "typeString": "uint128" 984 }, 985 "typeName": { 986 "id": 31, 987 "name": "uint128", 988 "nodeType": "ElementaryTypeName", 989 "src": "359:7:0", 990 "typeDescriptions": { 991 "typeIdentifier": "t_uint128", 992 "typeString": "uint128" 993 } 994 }, 995 "visibility": "internal" 996 }, 997 { 998 "constant": false, 999 "id": 34, 1000 "mutability": "mutable", 1001 "name": "timestamp", 1002 "nodeType": "VariableDeclaration", 1003 "scope": 71, 1004 "src": "374:17:0", 1005 "stateVariable": false, 1006 "storageLocation": "default", 1007 "typeDescriptions": { 1008 "typeIdentifier": "t_uint128", 1009 "typeString": "uint128" 1010 }, 1011 "typeName": { 1012 "id": 33, 1013 "name": "uint128", 1014 "nodeType": "ElementaryTypeName", 1015 "src": "374:7:0", 1016 "typeDescriptions": { 1017 "typeIdentifier": "t_uint128", 1018 "typeString": "uint128" 1019 } 1020 }, 1021 "visibility": "internal" 1022 } 1023 ], 1024 "src": "339:53:0" 1025 }, 1026 "returnParameters": { 1027 "id": 36, 1028 "nodeType": "ParameterList", 1029 "parameters": [], 1030 "src": "400:0:0" 1031 }, 1032 "scope": 135, 1033 "src": "322:277:0", 1034 "stateMutability": "nonpayable", 1035 "virtual": false, 1036 "visibility": "public" 1037 }, 1038 { 1039 "body": { 1040 "id": 112, 1041 "nodeType": "Block", 1042 "src": "685:186:0", 1043 "statements": [ 1044 { 1045 "assignments": [ 1046 81 1047 ], 1048 "declarations": [ 1049 { 1050 "constant": false, 1051 "id": 81, 1052 "mutability": "mutable", 1053 "name": "cValue", 1054 "nodeType": "VariableDeclaration", 1055 "scope": 112, 1056 "src": "695:14:0", 1057 "stateVariable": false, 1058 "storageLocation": "default", 1059 "typeDescriptions": { 1060 "typeIdentifier": "t_uint256", 1061 "typeString": "uint256" 1062 }, 1063 "typeName": { 1064 "id": 80, 1065 "name": "uint256", 1066 "nodeType": "ElementaryTypeName", 1067 "src": "695:7:0", 1068 "typeDescriptions": { 1069 "typeIdentifier": "t_uint256", 1070 "typeString": "uint256" 1071 } 1072 }, 1073 "visibility": "internal" 1074 } 1075 ], 1076 "id": 85, 1077 "initialValue": { 1078 "baseExpression": { 1079 "id": 82, 1080 "name": "values", 1081 "nodeType": "Identifier", 1082 "overloadedDeclarations": [], 1083 "referencedDeclaration": 5, 1084 "src": "712:6:0", 1085 "typeDescriptions": { 1086 "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_uint256_$", 1087 "typeString": "mapping(string memory => uint256)" 1088 } 1089 }, 1090 "id": 84, 1091 "indexExpression": { 1092 "id": 83, 1093 "name": "key", 1094 "nodeType": "Identifier", 1095 "overloadedDeclarations": [], 1096 "referencedDeclaration": 73, 1097 "src": "719:3:0", 1098 "typeDescriptions": { 1099 "typeIdentifier": "t_string_memory_ptr", 1100 "typeString": "string memory" 1101 } 1102 }, 1103 "isConstant": false, 1104 "isLValue": true, 1105 "isPure": false, 1106 "lValueRequested": false, 1107 "nodeType": "IndexAccess", 1108 "src": "712:11:0", 1109 "typeDescriptions": { 1110 "typeIdentifier": "t_uint256", 1111 "typeString": "uint256" 1112 } 1113 }, 1114 "nodeType": "VariableDeclarationStatement", 1115 "src": "695:28:0" 1116 }, 1117 { 1118 "assignments": [ 1119 87 1120 ], 1121 "declarations": [ 1122 { 1123 "constant": false, 1124 "id": 87, 1125 "mutability": "mutable", 1126 "name": "timestamp", 1127 "nodeType": "VariableDeclaration", 1128 "scope": 112, 1129 "src": "733:17:0", 1130 "stateVariable": false, 1131 "storageLocation": "default", 1132 "typeDescriptions": { 1133 "typeIdentifier": "t_uint128", 1134 "typeString": "uint128" 1135 }, 1136 "typeName": { 1137 "id": 86, 1138 "name": "uint128", 1139 "nodeType": "ElementaryTypeName", 1140 "src": "733:7:0", 1141 "typeDescriptions": { 1142 "typeIdentifier": "t_uint128", 1143 "typeString": "uint128" 1144 } 1145 }, 1146 "visibility": "internal" 1147 } 1148 ], 1149 "id": 97, 1150 "initialValue": { 1151 "arguments": [ 1152 { 1153 "commonType": { 1154 "typeIdentifier": "t_uint256", 1155 "typeString": "uint256" 1156 }, 1157 "id": 95, 1158 "isConstant": false, 1159 "isLValue": false, 1160 "isPure": false, 1161 "lValueRequested": false, 1162 "leftExpression": { 1163 "id": 91, 1164 "name": "cValue", 1165 "nodeType": "Identifier", 1166 "overloadedDeclarations": [], 1167 "referencedDeclaration": 81, 1168 "src": "763:6:0", 1169 "typeDescriptions": { 1170 "typeIdentifier": "t_uint256", 1171 "typeString": "uint256" 1172 } 1173 }, 1174 "nodeType": "BinaryOperation", 1175 "operator": "%", 1176 "rightExpression": { 1177 "commonType": { 1178 "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", 1179 "typeString": "int_const 3402...(31 digits omitted)...1456" 1180 }, 1181 "id": 94, 1182 "isConstant": false, 1183 "isLValue": false, 1184 "isPure": true, 1185 "lValueRequested": false, 1186 "leftExpression": { 1187 "hexValue": "32", 1188 "id": 92, 1189 "isConstant": false, 1190 "isLValue": false, 1191 "isPure": true, 1192 "kind": "number", 1193 "lValueRequested": false, 1194 "nodeType": "Literal", 1195 "src": "772:1:0", 1196 "typeDescriptions": { 1197 "typeIdentifier": "t_rational_2_by_1", 1198 "typeString": "int_const 2" 1199 }, 1200 "value": "2" 1201 }, 1202 "nodeType": "BinaryOperation", 1203 "operator": "**", 1204 "rightExpression": { 1205 "hexValue": "313238", 1206 "id": 93, 1207 "isConstant": false, 1208 "isLValue": false, 1209 "isPure": true, 1210 "kind": "number", 1211 "lValueRequested": false, 1212 "nodeType": "Literal", 1213 "src": "775:3:0", 1214 "typeDescriptions": { 1215 "typeIdentifier": "t_rational_128_by_1", 1216 "typeString": "int_const 128" 1217 }, 1218 "value": "128" 1219 }, 1220 "src": "772:6:0", 1221 "typeDescriptions": { 1222 "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", 1223 "typeString": "int_const 3402...(31 digits omitted)...1456" 1224 } 1225 }, 1226 "src": "763:15:0", 1227 "typeDescriptions": { 1228 "typeIdentifier": "t_uint256", 1229 "typeString": "uint256" 1230 } 1231 } 1232 ], 1233 "expression": { 1234 "argumentTypes": [ 1235 { 1236 "typeIdentifier": "t_uint256", 1237 "typeString": "uint256" 1238 } 1239 ], 1240 "components": [ 1241 { 1242 "id": 89, 1243 "isConstant": false, 1244 "isLValue": false, 1245 "isPure": true, 1246 "lValueRequested": false, 1247 "nodeType": "ElementaryTypeNameExpression", 1248 "src": "754:7:0", 1249 "typeDescriptions": { 1250 "typeIdentifier": "t_type$_t_uint128_$", 1251 "typeString": "type(uint128)" 1252 }, 1253 "typeName": { 1254 "id": 88, 1255 "name": "uint128", 1256 "nodeType": "ElementaryTypeName", 1257 "src": "754:7:0", 1258 "typeDescriptions": {} 1259 } 1260 } 1261 ], 1262 "id": 90, 1263 "isConstant": false, 1264 "isInlineArray": false, 1265 "isLValue": false, 1266 "isPure": true, 1267 "lValueRequested": false, 1268 "nodeType": "TupleExpression", 1269 "src": "753:9:0", 1270 "typeDescriptions": { 1271 "typeIdentifier": "t_type$_t_uint128_$", 1272 "typeString": "type(uint128)" 1273 } 1274 }, 1275 "id": 96, 1276 "isConstant": false, 1277 "isLValue": false, 1278 "isPure": false, 1279 "kind": "typeConversion", 1280 "lValueRequested": false, 1281 "names": [], 1282 "nodeType": "FunctionCall", 1283 "src": "753:26:0", 1284 "tryCall": false, 1285 "typeDescriptions": { 1286 "typeIdentifier": "t_uint128", 1287 "typeString": "uint128" 1288 } 1289 }, 1290 "nodeType": "VariableDeclarationStatement", 1291 "src": "733:46:0" 1292 }, 1293 { 1294 "assignments": [ 1295 99 1296 ], 1297 "declarations": [ 1298 { 1299 "constant": false, 1300 "id": 99, 1301 "mutability": "mutable", 1302 "name": "value", 1303 "nodeType": "VariableDeclaration", 1304 "scope": 112, 1305 "src": "789:13:0", 1306 "stateVariable": false, 1307 "storageLocation": "default", 1308 "typeDescriptions": { 1309 "typeIdentifier": "t_uint128", 1310 "typeString": "uint128" 1311 }, 1312 "typeName": { 1313 "id": 98, 1314 "name": "uint128", 1315 "nodeType": "ElementaryTypeName", 1316 "src": "789:7:0", 1317 "typeDescriptions": { 1318 "typeIdentifier": "t_uint128", 1319 "typeString": "uint128" 1320 } 1321 }, 1322 "visibility": "internal" 1323 } 1324 ], 1325 "id": 107, 1326 "initialValue": { 1327 "arguments": [ 1328 { 1329 "commonType": { 1330 "typeIdentifier": "t_uint256", 1331 "typeString": "uint256" 1332 }, 1333 "id": 105, 1334 "isConstant": false, 1335 "isLValue": false, 1336 "isPure": false, 1337 "lValueRequested": false, 1338 "leftExpression": { 1339 "id": 103, 1340 "name": "cValue", 1341 "nodeType": "Identifier", 1342 "overloadedDeclarations": [], 1343 "referencedDeclaration": 81, 1344 "src": "815:6:0", 1345 "typeDescriptions": { 1346 "typeIdentifier": "t_uint256", 1347 "typeString": "uint256" 1348 } 1349 }, 1350 "nodeType": "BinaryOperation", 1351 "operator": ">>", 1352 "rightExpression": { 1353 "hexValue": "313238", 1354 "id": 104, 1355 "isConstant": false, 1356 "isLValue": false, 1357 "isPure": true, 1358 "kind": "number", 1359 "lValueRequested": false, 1360 "nodeType": "Literal", 1361 "src": "825:3:0", 1362 "typeDescriptions": { 1363 "typeIdentifier": "t_rational_128_by_1", 1364 "typeString": "int_const 128" 1365 }, 1366 "value": "128" 1367 }, 1368 "src": "815:13:0", 1369 "typeDescriptions": { 1370 "typeIdentifier": "t_uint256", 1371 "typeString": "uint256" 1372 } 1373 } 1374 ], 1375 "expression": { 1376 "argumentTypes": [ 1377 { 1378 "typeIdentifier": "t_uint256", 1379 "typeString": "uint256" 1380 } 1381 ], 1382 "components": [ 1383 { 1384 "id": 101, 1385 "isConstant": false, 1386 "isLValue": false, 1387 "isPure": true, 1388 "lValueRequested": false, 1389 "nodeType": "ElementaryTypeNameExpression", 1390 "src": "806:7:0", 1391 "typeDescriptions": { 1392 "typeIdentifier": "t_type$_t_uint128_$", 1393 "typeString": "type(uint128)" 1394 }, 1395 "typeName": { 1396 "id": 100, 1397 "name": "uint128", 1398 "nodeType": "ElementaryTypeName", 1399 "src": "806:7:0", 1400 "typeDescriptions": {} 1401 } 1402 } 1403 ], 1404 "id": 102, 1405 "isConstant": false, 1406 "isInlineArray": false, 1407 "isLValue": false, 1408 "isPure": true, 1409 "lValueRequested": false, 1410 "nodeType": "TupleExpression", 1411 "src": "805:9:0", 1412 "typeDescriptions": { 1413 "typeIdentifier": "t_type$_t_uint128_$", 1414 "typeString": "type(uint128)" 1415 } 1416 }, 1417 "id": 106, 1418 "isConstant": false, 1419 "isLValue": false, 1420 "isPure": false, 1421 "kind": "typeConversion", 1422 "lValueRequested": false, 1423 "names": [], 1424 "nodeType": "FunctionCall", 1425 "src": "805:24:0", 1426 "tryCall": false, 1427 "typeDescriptions": { 1428 "typeIdentifier": "t_uint128", 1429 "typeString": "uint128" 1430 } 1431 }, 1432 "nodeType": "VariableDeclarationStatement", 1433 "src": "789:40:0" 1434 }, 1435 { 1436 "expression": { 1437 "components": [ 1438 { 1439 "id": 108, 1440 "name": "value", 1441 "nodeType": "Identifier", 1442 "overloadedDeclarations": [], 1443 "referencedDeclaration": 99, 1444 "src": "847:5:0", 1445 "typeDescriptions": { 1446 "typeIdentifier": "t_uint128", 1447 "typeString": "uint128" 1448 } 1449 }, 1450 { 1451 "id": 109, 1452 "name": "timestamp", 1453 "nodeType": "Identifier", 1454 "overloadedDeclarations": [], 1455 "referencedDeclaration": 87, 1456 "src": "854:9:0", 1457 "typeDescriptions": { 1458 "typeIdentifier": "t_uint128", 1459 "typeString": "uint128" 1460 } 1461 } 1462 ], 1463 "id": 110, 1464 "isConstant": false, 1465 "isInlineArray": false, 1466 "isLValue": false, 1467 "isPure": false, 1468 "lValueRequested": false, 1469 "nodeType": "TupleExpression", 1470 "src": "846:18:0", 1471 "typeDescriptions": { 1472 "typeIdentifier": "t_tuple$_t_uint128_$_t_uint128_$", 1473 "typeString": "tuple(uint128,uint128)" 1474 } 1475 }, 1476 "functionReturnParameters": 79, 1477 "id": 111, 1478 "nodeType": "Return", 1479 "src": "839:25:0" 1480 } 1481 ] 1482 }, 1483 "functionSelector": "960384a0", 1484 "id": 113, 1485 "implemented": true, 1486 "kind": "function", 1487 "modifiers": [], 1488 "name": "getValue", 1489 "nodeType": "FunctionDefinition", 1490 "parameters": { 1491 "id": 74, 1492 "nodeType": "ParameterList", 1493 "parameters": [ 1494 { 1495 "constant": false, 1496 "id": 73, 1497 "mutability": "mutable", 1498 "name": "key", 1499 "nodeType": "VariableDeclaration", 1500 "scope": 113, 1501 "src": "627:17:0", 1502 "stateVariable": false, 1503 "storageLocation": "memory", 1504 "typeDescriptions": { 1505 "typeIdentifier": "t_string_memory_ptr", 1506 "typeString": "string" 1507 }, 1508 "typeName": { 1509 "id": 72, 1510 "name": "string", 1511 "nodeType": "ElementaryTypeName", 1512 "src": "627:6:0", 1513 "typeDescriptions": { 1514 "typeIdentifier": "t_string_storage_ptr", 1515 "typeString": "string" 1516 } 1517 }, 1518 "visibility": "internal" 1519 } 1520 ], 1521 "src": "626:19:0" 1522 }, 1523 "returnParameters": { 1524 "id": 79, 1525 "nodeType": "ParameterList", 1526 "parameters": [ 1527 { 1528 "constant": false, 1529 "id": 76, 1530 "mutability": "mutable", 1531 "name": "", 1532 "nodeType": "VariableDeclaration", 1533 "scope": 113, 1534 "src": "667:7:0", 1535 "stateVariable": false, 1536 "storageLocation": "default", 1537 "typeDescriptions": { 1538 "typeIdentifier": "t_uint128", 1539 "typeString": "uint128" 1540 }, 1541 "typeName": { 1542 "id": 75, 1543 "name": "uint128", 1544 "nodeType": "ElementaryTypeName", 1545 "src": "667:7:0", 1546 "typeDescriptions": { 1547 "typeIdentifier": "t_uint128", 1548 "typeString": "uint128" 1549 } 1550 }, 1551 "visibility": "internal" 1552 }, 1553 { 1554 "constant": false, 1555 "id": 78, 1556 "mutability": "mutable", 1557 "name": "", 1558 "nodeType": "VariableDeclaration", 1559 "scope": 113, 1560 "src": "676:7:0", 1561 "stateVariable": false, 1562 "storageLocation": "default", 1563 "typeDescriptions": { 1564 "typeIdentifier": "t_uint128", 1565 "typeString": "uint128" 1566 }, 1567 "typeName": { 1568 "id": 77, 1569 "name": "uint128", 1570 "nodeType": "ElementaryTypeName", 1571 "src": "676:7:0", 1572 "typeDescriptions": { 1573 "typeIdentifier": "t_uint128", 1574 "typeString": "uint128" 1575 } 1576 }, 1577 "visibility": "internal" 1578 } 1579 ], 1580 "src": "666:18:0" 1581 }, 1582 "scope": 135, 1583 "src": "609:262:0", 1584 "stateMutability": "view", 1585 "virtual": false, 1586 "visibility": "public" 1587 }, 1588 { 1589 "body": { 1590 "id": 133, 1591 "nodeType": "Block", 1592 "src": "957:162:0", 1593 "statements": [ 1594 { 1595 "expression": { 1596 "arguments": [ 1597 { 1598 "commonType": { 1599 "typeIdentifier": "t_address", 1600 "typeString": "address" 1601 }, 1602 "id": 122, 1603 "isConstant": false, 1604 "isLValue": false, 1605 "isPure": false, 1606 "lValueRequested": false, 1607 "leftExpression": { 1608 "expression": { 1609 "id": 119, 1610 "name": "msg", 1611 "nodeType": "Identifier", 1612 "overloadedDeclarations": [], 1613 "referencedDeclaration": -15, 1614 "src": "975:3:0", 1615 "typeDescriptions": { 1616 "typeIdentifier": "t_magic_message", 1617 "typeString": "msg" 1618 } 1619 }, 1620 "id": 120, 1621 "isConstant": false, 1622 "isLValue": false, 1623 "isPure": false, 1624 "lValueRequested": false, 1625 "memberName": "sender", 1626 "nodeType": "MemberAccess", 1627 "src": "975:10:0", 1628 "typeDescriptions": { 1629 "typeIdentifier": "t_address_payable", 1630 "typeString": "address payable" 1631 } 1632 }, 1633 "nodeType": "BinaryOperation", 1634 "operator": "==", 1635 "rightExpression": { 1636 "id": 121, 1637 "name": "oracleUpdater", 1638 "nodeType": "Identifier", 1639 "overloadedDeclarations": [], 1640 "referencedDeclaration": 7, 1641 "src": "989:13:0", 1642 "typeDescriptions": { 1643 "typeIdentifier": "t_address", 1644 "typeString": "address" 1645 } 1646 }, 1647 "src": "975:27:0", 1648 "typeDescriptions": { 1649 "typeIdentifier": "t_bool", 1650 "typeString": "bool" 1651 } 1652 } 1653 ], 1654 "expression": { 1655 "argumentTypes": [ 1656 { 1657 "typeIdentifier": "t_bool", 1658 "typeString": "bool" 1659 } 1660 ], 1661 "id": 118, 1662 "name": "require", 1663 "nodeType": "Identifier", 1664 "overloadedDeclarations": [ 1665 -18, 1666 -18 1667 ], 1668 "referencedDeclaration": -18, 1669 "src": "967:7:0", 1670 "typeDescriptions": { 1671 "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", 1672 "typeString": "function (bool) pure" 1673 } 1674 }, 1675 "id": 123, 1676 "isConstant": false, 1677 "isLValue": false, 1678 "isPure": false, 1679 "kind": "functionCall", 1680 "lValueRequested": false, 1681 "names": [], 1682 "nodeType": "FunctionCall", 1683 "src": "967:36:0", 1684 "tryCall": false, 1685 "typeDescriptions": { 1686 "typeIdentifier": "t_tuple$__$", 1687 "typeString": "tuple()" 1688 } 1689 }, 1690 "id": 124, 1691 "nodeType": "ExpressionStatement", 1692 "src": "967:36:0" 1693 }, 1694 { 1695 "expression": { 1696 "id": 127, 1697 "isConstant": false, 1698 "isLValue": false, 1699 "isPure": false, 1700 "lValueRequested": false, 1701 "leftHandSide": { 1702 "id": 125, 1703 "name": "oracleUpdater", 1704 "nodeType": "Identifier", 1705 "overloadedDeclarations": [], 1706 "referencedDeclaration": 7, 1707 "src": "1013:13:0", 1708 "typeDescriptions": { 1709 "typeIdentifier": "t_address", 1710 "typeString": "address" 1711 } 1712 }, 1713 "nodeType": "Assignment", 1714 "operator": "=", 1715 "rightHandSide": { 1716 "id": 126, 1717 "name": "newOracleUpdaterAddress", 1718 "nodeType": "Identifier", 1719 "overloadedDeclarations": [], 1720 "referencedDeclaration": 115, 1721 "src": "1029:23:0", 1722 "typeDescriptions": { 1723 "typeIdentifier": "t_address", 1724 "typeString": "address" 1725 } 1726 }, 1727 "src": "1013:39:0", 1728 "typeDescriptions": { 1729 "typeIdentifier": "t_address", 1730 "typeString": "address" 1731 } 1732 }, 1733 "id": 128, 1734 "nodeType": "ExpressionStatement", 1735 "src": "1013:39:0" 1736 }, 1737 { 1738 "eventCall": { 1739 "arguments": [ 1740 { 1741 "id": 130, 1742 "name": "newOracleUpdaterAddress", 1743 "nodeType": "Identifier", 1744 "overloadedDeclarations": [], 1745 "referencedDeclaration": 115, 1746 "src": "1088:23:0", 1747 "typeDescriptions": { 1748 "typeIdentifier": "t_address", 1749 "typeString": "address" 1750 } 1751 } 1752 ], 1753 "expression": { 1754 "argumentTypes": [ 1755 { 1756 "typeIdentifier": "t_address", 1757 "typeString": "address" 1758 } 1759 ], 1760 "id": 129, 1761 "name": "UpdaterAddressChange", 1762 "nodeType": "Identifier", 1763 "overloadedDeclarations": [], 1764 "referencedDeclaration": 19, 1765 "src": "1067:20:0", 1766 "typeDescriptions": { 1767 "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", 1768 "typeString": "function (address)" 1769 } 1770 }, 1771 "id": 131, 1772 "isConstant": false, 1773 "isLValue": false, 1774 "isPure": false, 1775 "kind": "functionCall", 1776 "lValueRequested": false, 1777 "names": [], 1778 "nodeType": "FunctionCall", 1779 "src": "1067:45:0", 1780 "tryCall": false, 1781 "typeDescriptions": { 1782 "typeIdentifier": "t_tuple$__$", 1783 "typeString": "tuple()" 1784 } 1785 }, 1786 "id": 132, 1787 "nodeType": "EmitStatement", 1788 "src": "1062:50:0" 1789 } 1790 ] 1791 }, 1792 "functionSelector": "6aa45efc", 1793 "id": 134, 1794 "implemented": true, 1795 "kind": "function", 1796 "modifiers": [], 1797 "name": "updateOracleUpdaterAddress", 1798 "nodeType": "FunctionDefinition", 1799 "parameters": { 1800 "id": 116, 1801 "nodeType": "ParameterList", 1802 "parameters": [ 1803 { 1804 "constant": false, 1805 "id": 115, 1806 "mutability": "mutable", 1807 "name": "newOracleUpdaterAddress", 1808 "nodeType": "VariableDeclaration", 1809 "scope": 134, 1810 "src": "917:31:0", 1811 "stateVariable": false, 1812 "storageLocation": "default", 1813 "typeDescriptions": { 1814 "typeIdentifier": "t_address", 1815 "typeString": "address" 1816 }, 1817 "typeName": { 1818 "id": 114, 1819 "name": "address", 1820 "nodeType": "ElementaryTypeName", 1821 "src": "917:7:0", 1822 "stateMutability": "nonpayable", 1823 "typeDescriptions": { 1824 "typeIdentifier": "t_address", 1825 "typeString": "address" 1826 } 1827 }, 1828 "visibility": "internal" 1829 } 1830 ], 1831 "src": "916:33:0" 1832 }, 1833 "returnParameters": { 1834 "id": 117, 1835 "nodeType": "ParameterList", 1836 "parameters": [], 1837 "src": "957:0:0" 1838 }, 1839 "scope": 135, 1840 "src": "881:238:0", 1841 "stateMutability": "nonpayable", 1842 "virtual": false, 1843 "visibility": "public" 1844 } 1845 ], 1846 "scope": 136, 1847 "src": "24:1097:0" 1848 } 1849 ], 1850 "src": "0:1122:0" 1851 }, 1852 "legacyAST": { 1853 "attributes": { 1854 "absolutePath": "project:/contracts/DIAOracle.sol", 1855 "exportedSymbols": { 1856 "DIAOracle": [ 1857 135 1858 ] 1859 } 1860 }, 1861 "children": [ 1862 { 1863 "attributes": { 1864 "literals": [ 1865 "solidity", 1866 "0.7", 1867 ".4" 1868 ] 1869 }, 1870 "id": 1, 1871 "name": "PragmaDirective", 1872 "src": "0:22:0" 1873 }, 1874 { 1875 "attributes": { 1876 "abstract": false, 1877 "baseContracts": [ 1878 null 1879 ], 1880 "contractDependencies": [ 1881 null 1882 ], 1883 "contractKind": "contract", 1884 "fullyImplemented": true, 1885 "linearizedBaseContracts": [ 1886 135 1887 ], 1888 "name": "DIAOracle", 1889 "scope": 136 1890 }, 1891 "children": [ 1892 { 1893 "attributes": { 1894 "constant": false, 1895 "functionSelector": "5a9ade8b", 1896 "mutability": "mutable", 1897 "name": "values", 1898 "scope": 135, 1899 "stateVariable": true, 1900 "storageLocation": "default", 1901 "type": "mapping(string => uint256)", 1902 "visibility": "public" 1903 }, 1904 "children": [ 1905 { 1906 "attributes": { 1907 "type": "mapping(string => uint256)" 1908 }, 1909 "children": [ 1910 { 1911 "attributes": { 1912 "name": "string", 1913 "type": "string" 1914 }, 1915 "id": 2, 1916 "name": "ElementaryTypeName", 1917 "src": "58:6:0" 1918 }, 1919 { 1920 "attributes": { 1921 "name": "uint256", 1922 "type": "uint256" 1923 }, 1924 "id": 3, 1925 "name": "ElementaryTypeName", 1926 "src": "68:7:0" 1927 } 1928 ], 1929 "id": 4, 1930 "name": "Mapping", 1931 "src": "49:27:0" 1932 } 1933 ], 1934 "id": 5, 1935 "name": "VariableDeclaration", 1936 "src": "49:41:0" 1937 }, 1938 { 1939 "attributes": { 1940 "constant": false, 1941 "mutability": "mutable", 1942 "name": "oracleUpdater", 1943 "scope": 135, 1944 "stateVariable": true, 1945 "storageLocation": "default", 1946 "type": "address", 1947 "visibility": "internal" 1948 }, 1949 "children": [ 1950 { 1951 "attributes": { 1952 "name": "address", 1953 "stateMutability": "nonpayable", 1954 "type": "address" 1955 }, 1956 "id": 6, 1957 "name": "ElementaryTypeName", 1958 "src": "96:7:0" 1959 } 1960 ], 1961 "id": 7, 1962 "name": "VariableDeclaration", 1963 "src": "96:21:0" 1964 }, 1965 { 1966 "attributes": { 1967 "anonymous": false, 1968 "name": "OracleUpdate" 1969 }, 1970 "children": [ 1971 { 1972 "children": [ 1973 { 1974 "attributes": { 1975 "constant": false, 1976 "indexed": false, 1977 "mutability": "mutable", 1978 "name": "key", 1979 "scope": 15, 1980 "stateVariable": false, 1981 "storageLocation": "default", 1982 "type": "string", 1983 "visibility": "internal" 1984 }, 1985 "children": [ 1986 { 1987 "attributes": { 1988 "name": "string", 1989 "type": "string" 1990 }, 1991 "id": 8, 1992 "name": "ElementaryTypeName", 1993 "src": "147:6:0" 1994 } 1995 ], 1996 "id": 9, 1997 "name": "VariableDeclaration", 1998 "src": "147:10:0" 1999 }, 2000 { 2001 "attributes": { 2002 "constant": false, 2003 "indexed": false, 2004 "mutability": "mutable", 2005 "name": "value", 2006 "scope": 15, 2007 "stateVariable": false, 2008 "storageLocation": "default", 2009 "type": "uint128", 2010 "visibility": "internal" 2011 }, 2012 "children": [ 2013 { 2014 "attributes": { 2015 "name": "uint128", 2016 "type": "uint128" 2017 }, 2018 "id": 10, 2019 "name": "ElementaryTypeName", 2020 "src": "159:7:0" 2021 } 2022 ], 2023 "id": 11, 2024 "name": "VariableDeclaration", 2025 "src": "159:13:0" 2026 }, 2027 { 2028 "attributes": { 2029 "constant": false, 2030 "indexed": false, 2031 "mutability": "mutable", 2032 "name": "timestamp", 2033 "scope": 15, 2034 "stateVariable": false, 2035 "storageLocation": "default", 2036 "type": "uint128", 2037 "visibility": "internal" 2038 }, 2039 "children": [ 2040 { 2041 "attributes": { 2042 "name": "uint128", 2043 "type": "uint128" 2044 }, 2045 "id": 12, 2046 "name": "ElementaryTypeName", 2047 "src": "174:7:0" 2048 } 2049 ], 2050 "id": 13, 2051 "name": "VariableDeclaration", 2052 "src": "174:17:0" 2053 } 2054 ], 2055 "id": 14, 2056 "name": "ParameterList", 2057 "src": "146:46:0" 2058 } 2059 ], 2060 "id": 15, 2061 "name": "EventDefinition", 2062 "src": "128:65:0" 2063 }, 2064 { 2065 "attributes": { 2066 "anonymous": false, 2067 "name": "UpdaterAddressChange" 2068 }, 2069 "children": [ 2070 { 2071 "children": [ 2072 { 2073 "attributes": { 2074 "constant": false, 2075 "indexed": false, 2076 "mutability": "mutable", 2077 "name": "newUpdater", 2078 "scope": 19, 2079 "stateVariable": false, 2080 "storageLocation": "default", 2081 "type": "address", 2082 "visibility": "internal" 2083 }, 2084 "children": [ 2085 { 2086 "attributes": { 2087 "name": "address", 2088 "stateMutability": "nonpayable", 2089 "type": "address" 2090 }, 2091 "id": 16, 2092 "name": "ElementaryTypeName", 2093 "src": "225:7:0" 2094 } 2095 ], 2096 "id": 17, 2097 "name": "VariableDeclaration", 2098 "src": "225:18:0" 2099 } 2100 ], 2101 "id": 18, 2102 "name": "ParameterList", 2103 "src": "224:20:0" 2104 } 2105 ], 2106 "id": 19, 2107 "name": "EventDefinition", 2108 "src": "198:47:0" 2109 }, 2110 { 2111 "attributes": { 2112 "implemented": true, 2113 "isConstructor": true, 2114 "kind": "constructor", 2115 "modifiers": [ 2116 null 2117 ], 2118 "name": "", 2119 "scope": 135, 2120 "stateMutability": "nonpayable", 2121 "virtual": false, 2122 "visibility": "public" 2123 }, 2124 "children": [ 2125 { 2126 "attributes": { 2127 "parameters": [ 2128 null 2129 ] 2130 }, 2131 "children": [], 2132 "id": 20, 2133 "name": "ParameterList", 2134 "src": "266:2:0" 2135 }, 2136 { 2137 "attributes": { 2138 "parameters": [ 2139 null 2140 ] 2141 }, 2142 "children": [], 2143 "id": 21, 2144 "name": "ParameterList", 2145 "src": "269:0:0" 2146 }, 2147 { 2148 "children": [ 2149 { 2150 "children": [ 2151 { 2152 "attributes": { 2153 "isConstant": false, 2154 "isLValue": false, 2155 "isPure": false, 2156 "lValueRequested": false, 2157 "operator": "=", 2158 "type": "address" 2159 }, 2160 "children": [ 2161 { 2162 "attributes": { 2163 "overloadedDeclarations": [ 2164 null 2165 ], 2166 "referencedDeclaration": 7, 2167 "type": "address", 2168 "value": "oracleUpdater" 2169 }, 2170 "id": 22, 2171 "name": "Identifier", 2172 "src": "279:13:0" 2173 }, 2174 { 2175 "attributes": { 2176 "isConstant": false, 2177 "isLValue": false, 2178 "isPure": false, 2179 "lValueRequested": false, 2180 "member_name": "sender", 2181 "type": "address payable" 2182 }, 2183 "children": [ 2184 { 2185 "attributes": { 2186 "overloadedDeclarations": [ 2187 null 2188 ], 2189 "referencedDeclaration": -15, 2190 "type": "msg", 2191 "value": "msg" 2192 }, 2193 "id": 23, 2194 "name": "Identifier", 2195 "src": "295:3:0" 2196 } 2197 ], 2198 "id": 24, 2199 "name": "MemberAccess", 2200 "src": "295:10:0" 2201 } 2202 ], 2203 "id": 25, 2204 "name": "Assignment", 2205 "src": "279:26:0" 2206 } 2207 ], 2208 "id": 26, 2209 "name": "ExpressionStatement", 2210 "src": "279:26:0" 2211 } 2212 ], 2213 "id": 27, 2214 "name": "Block", 2215 "src": "269:43:0" 2216 } 2217 ], 2218 "id": 28, 2219 "name": "FunctionDefinition", 2220 "src": "255:57:0" 2221 }, 2222 { 2223 "attributes": { 2224 "functionSelector": "7898e0c2", 2225 "implemented": true, 2226 "isConstructor": false, 2227 "kind": "function", 2228 "modifiers": [ 2229 null 2230 ], 2231 "name": "setValue", 2232 "scope": 135, 2233 "stateMutability": "nonpayable", 2234 "virtual": false, 2235 "visibility": "public" 2236 }, 2237 "children": [ 2238 { 2239 "children": [ 2240 { 2241 "attributes": { 2242 "constant": false, 2243 "mutability": "mutable", 2244 "name": "key", 2245 "scope": 71, 2246 "stateVariable": false, 2247 "storageLocation": "memory", 2248 "type": "string", 2249 "visibility": "internal" 2250 }, 2251 "children": [ 2252 { 2253 "attributes": { 2254 "name": "string", 2255 "type": "string" 2256 }, 2257 "id": 29, 2258 "name": "ElementaryTypeName", 2259 "src": "340:6:0" 2260 } 2261 ], 2262 "id": 30, 2263 "name": "VariableDeclaration", 2264 "src": "340:17:0" 2265 }, 2266 { 2267 "attributes": { 2268 "constant": false, 2269 "mutability": "mutable", 2270 "name": "value", 2271 "scope": 71, 2272 "stateVariable": false, 2273 "storageLocation": "default", 2274 "type": "uint128", 2275 "visibility": "internal" 2276 }, 2277 "children": [ 2278 { 2279 "attributes": { 2280 "name": "uint128", 2281 "type": "uint128" 2282 }, 2283 "id": 31, 2284 "name": "ElementaryTypeName", 2285 "src": "359:7:0" 2286 } 2287 ], 2288 "id": 32, 2289 "name": "VariableDeclaration", 2290 "src": "359:13:0" 2291 }, 2292 { 2293 "attributes": { 2294 "constant": false, 2295 "mutability": "mutable", 2296 "name": "timestamp", 2297 "scope": 71, 2298 "stateVariable": false, 2299 "storageLocation": "default", 2300 "type": "uint128", 2301 "visibility": "internal" 2302 }, 2303 "children": [ 2304 { 2305 "attributes": { 2306 "name": "uint128", 2307 "type": "uint128" 2308 }, 2309 "id": 33, 2310 "name": "ElementaryTypeName", 2311 "src": "374:7:0" 2312 } 2313 ], 2314 "id": 34, 2315 "name": "VariableDeclaration", 2316 "src": "374:17:0" 2317 } 2318 ], 2319 "id": 35, 2320 "name": "ParameterList", 2321 "src": "339:53:0" 2322 }, 2323 { 2324 "attributes": { 2325 "parameters": [ 2326 null 2327 ] 2328 }, 2329 "children": [], 2330 "id": 36, 2331 "name": "ParameterList", 2332 "src": "400:0:0" 2333 }, 2334 { 2335 "children": [ 2336 { 2337 "children": [ 2338 { 2339 "attributes": { 2340 "isConstant": false, 2341 "isLValue": false, 2342 "isPure": false, 2343 "isStructConstructorCall": false, 2344 "lValueRequested": false, 2345 "names": [ 2346 null 2347 ], 2348 "tryCall": false, 2349 "type": "tuple()", 2350 "type_conversion": false 2351 }, 2352 "children": [ 2353 { 2354 "attributes": { 2355 "argumentTypes": [ 2356 { 2357 "typeIdentifier": "t_bool", 2358 "typeString": "bool" 2359 } 2360 ], 2361 "overloadedDeclarations": [ 2362 -18, 2363 -18 2364 ], 2365 "referencedDeclaration": -18, 2366 "type": "function (bool) pure", 2367 "value": "require" 2368 }, 2369 "id": 37, 2370 "name": "Identifier", 2371 "src": "410:7:0" 2372 }, 2373 { 2374 "attributes": { 2375 "commonType": { 2376 "typeIdentifier": "t_address", 2377 "typeString": "address" 2378 }, 2379 "isConstant": false, 2380 "isLValue": false, 2381 "isPure": false, 2382 "lValueRequested": false, 2383 "operator": "==", 2384 "type": "bool" 2385 }, 2386 "children": [ 2387 { 2388 "attributes": { 2389 "isConstant": false, 2390 "isLValue": false, 2391 "isPure": false, 2392 "lValueRequested": false, 2393 "member_name": "sender", 2394 "type": "address payable" 2395 }, 2396 "children": [ 2397 { 2398 "attributes": { 2399 "overloadedDeclarations": [ 2400 null 2401 ], 2402 "referencedDeclaration": -15, 2403 "type": "msg", 2404 "value": "msg" 2405 }, 2406 "id": 38, 2407 "name": "Identifier", 2408 "src": "418:3:0" 2409 } 2410 ], 2411 "id": 39, 2412 "name": "MemberAccess", 2413 "src": "418:10:0" 2414 }, 2415 { 2416 "attributes": { 2417 "overloadedDeclarations": [ 2418 null 2419 ], 2420 "referencedDeclaration": 7, 2421 "type": "address", 2422 "value": "oracleUpdater" 2423 }, 2424 "id": 40, 2425 "name": "Identifier", 2426 "src": "432:13:0" 2427 } 2428 ], 2429 "id": 41, 2430 "name": "BinaryOperation", 2431 "src": "418:27:0" 2432 } 2433 ], 2434 "id": 42, 2435 "name": "FunctionCall", 2436 "src": "410:36:0" 2437 } 2438 ], 2439 "id": 43, 2440 "name": "ExpressionStatement", 2441 "src": "410:36:0" 2442 }, 2443 { 2444 "attributes": { 2445 "assignments": [ 2446 45 2447 ] 2448 }, 2449 "children": [ 2450 { 2451 "attributes": { 2452 "constant": false, 2453 "mutability": "mutable", 2454 "name": "cValue", 2455 "scope": 70, 2456 "stateVariable": false, 2457 "storageLocation": "default", 2458 "type": "uint256", 2459 "visibility": "internal" 2460 }, 2461 "children": [ 2462 { 2463 "attributes": { 2464 "name": "uint256", 2465 "type": "uint256" 2466 }, 2467 "id": 44, 2468 "name": "ElementaryTypeName", 2469 "src": "456:7:0" 2470 } 2471 ], 2472 "id": 45, 2473 "name": "VariableDeclaration", 2474 "src": "456:14:0" 2475 }, 2476 { 2477 "attributes": { 2478 "commonType": { 2479 "typeIdentifier": "t_uint256", 2480 "typeString": "uint256" 2481 }, 2482 "isConstant": false, 2483 "isLValue": false, 2484 "isPure": false, 2485 "lValueRequested": false, 2486 "operator": "+", 2487 "type": "uint256" 2488 }, 2489 "children": [ 2490 { 2491 "attributes": { 2492 "isConstant": false, 2493 "isInlineArray": false, 2494 "isLValue": false, 2495 "isPure": false, 2496 "lValueRequested": false, 2497 "type": "uint256" 2498 }, 2499 "children": [ 2500 { 2501 "attributes": { 2502 "commonType": { 2503 "typeIdentifier": "t_uint256", 2504 "typeString": "uint256" 2505 }, 2506 "isConstant": false, 2507 "isLValue": false, 2508 "isPure": false, 2509 "lValueRequested": false, 2510 "operator": "<<", 2511 "type": "uint256" 2512 }, 2513 "children": [ 2514 { 2515 "attributes": { 2516 "isConstant": false, 2517 "isInlineArray": false, 2518 "isLValue": false, 2519 "isPure": false, 2520 "lValueRequested": false, 2521 "type": "uint256" 2522 }, 2523 "children": [ 2524 { 2525 "attributes": { 2526 "isConstant": false, 2527 "isLValue": false, 2528 "isPure": false, 2529 "isStructConstructorCall": false, 2530 "lValueRequested": false, 2531 "names": [ 2532 null 2533 ], 2534 "tryCall": false, 2535 "type": "uint256", 2536 "type_conversion": true 2537 }, 2538 "children": [ 2539 { 2540 "attributes": { 2541 "argumentTypes": [ 2542 { 2543 "typeIdentifier": "t_uint128", 2544 "typeString": "uint128" 2545 } 2546 ], 2547 "isConstant": false, 2548 "isInlineArray": false, 2549 "isLValue": false, 2550 "isPure": true, 2551 "lValueRequested": false, 2552 "type": "type(uint256)" 2553 }, 2554 "children": [ 2555 { 2556 "attributes": { 2557 "isConstant": false, 2558 "isLValue": false, 2559 "isPure": true, 2560 "lValueRequested": false, 2561 "type": "type(uint256)" 2562 }, 2563 "children": [ 2564 { 2565 "attributes": { 2566 "name": "uint256" 2567 }, 2568 "id": 46, 2569 "name": "ElementaryTypeName", 2570 "src": "476:7:0" 2571 } 2572 ], 2573 "id": 47, 2574 "name": "ElementaryTypeNameExpression", 2575 "src": "476:7:0" 2576 } 2577 ], 2578 "id": 48, 2579 "name": "TupleExpression", 2580 "src": "475:9:0" 2581 }, 2582 { 2583 "attributes": { 2584 "overloadedDeclarations": [ 2585 null 2586 ], 2587 "referencedDeclaration": 32, 2588 "type": "uint128", 2589 "value": "value" 2590 }, 2591 "id": 49, 2592 "name": "Identifier", 2593 "src": "485:5:0" 2594 } 2595 ], 2596 "id": 50, 2597 "name": "FunctionCall", 2598 "src": "475:16:0" 2599 } 2600 ], 2601 "id": 51, 2602 "name": "TupleExpression", 2603 "src": "474:18:0" 2604 }, 2605 { 2606 "attributes": { 2607 "hexvalue": "313238", 2608 "isConstant": false, 2609 "isLValue": false, 2610 "isPure": true, 2611 "lValueRequested": false, 2612 "token": "number", 2613 "type": "int_const 128", 2614 "value": "128" 2615 }, 2616 "id": 52, 2617 "name": "Literal", 2618 "src": "496:3:0" 2619 } 2620 ], 2621 "id": 53, 2622 "name": "BinaryOperation", 2623 "src": "474:25:0" 2624 } 2625 ], 2626 "id": 54, 2627 "name": "TupleExpression", 2628 "src": "473:27:0" 2629 }, 2630 { 2631 "attributes": { 2632 "overloadedDeclarations": [ 2633 null 2634 ], 2635 "referencedDeclaration": 34, 2636 "type": "uint128", 2637 "value": "timestamp" 2638 }, 2639 "id": 55, 2640 "name": "Identifier", 2641 "src": "503:9:0" 2642 } 2643 ], 2644 "id": 56, 2645 "name": "BinaryOperation", 2646 "src": "473:39:0" 2647 } 2648 ], 2649 "id": 57, 2650 "name": "VariableDeclarationStatement", 2651 "src": "456:56:0" 2652 }, 2653 { 2654 "children": [ 2655 { 2656 "attributes": { 2657 "isConstant": false, 2658 "isLValue": false, 2659 "isPure": false, 2660 "lValueRequested": false, 2661 "operator": "=", 2662 "type": "uint256" 2663 }, 2664 "children": [ 2665 { 2666 "attributes": { 2667 "isConstant": false, 2668 "isLValue": true, 2669 "isPure": false, 2670 "lValueRequested": true, 2671 "type": "uint256" 2672 }, 2673 "children": [ 2674 { 2675 "attributes": { 2676 "overloadedDeclarations": [ 2677 null 2678 ], 2679 "referencedDeclaration": 5, 2680 "type": "mapping(string memory => uint256)", 2681 "value": "values" 2682 }, 2683 "id": 58, 2684 "name": "Identifier", 2685 "src": "522:6:0" 2686 }, 2687 { 2688 "attributes": { 2689 "overloadedDeclarations": [ 2690 null 2691 ], 2692 "referencedDeclaration": 30, 2693 "type": "string memory", 2694 "value": "key" 2695 }, 2696 "id": 59, 2697 "name": "Identifier", 2698 "src": "529:3:0" 2699 } 2700 ], 2701 "id": 60, 2702 "name": "IndexAccess", 2703 "src": "522:11:0" 2704 }, 2705 { 2706 "attributes": { 2707 "overloadedDeclarations": [ 2708 null 2709 ], 2710 "referencedDeclaration": 45, 2711 "type": "uint256", 2712 "value": "cValue" 2713 }, 2714 "id": 61, 2715 "name": "Identifier", 2716 "src": "536:6:0" 2717 } 2718 ], 2719 "id": 62, 2720 "name": "Assignment", 2721 "src": "522:20:0" 2722 } 2723 ], 2724 "id": 63, 2725 "name": "ExpressionStatement", 2726 "src": "522:20:0" 2727 }, 2728 { 2729 "children": [ 2730 { 2731 "attributes": { 2732 "isConstant": false, 2733 "isLValue": false, 2734 "isPure": false, 2735 "isStructConstructorCall": false, 2736 "lValueRequested": false, 2737 "names": [ 2738 null 2739 ], 2740 "tryCall": false, 2741 "type": "tuple()", 2742 "type_conversion": false 2743 }, 2744 "children": [ 2745 { 2746 "attributes": { 2747 "argumentTypes": [ 2748 { 2749 "typeIdentifier": "t_string_memory_ptr", 2750 "typeString": "string memory" 2751 }, 2752 { 2753 "typeIdentifier": "t_uint128", 2754 "typeString": "uint128" 2755 }, 2756 { 2757 "typeIdentifier": "t_uint128", 2758 "typeString": "uint128" 2759 } 2760 ], 2761 "overloadedDeclarations": [ 2762 null 2763 ], 2764 "referencedDeclaration": 15, 2765 "type": "function (string memory,uint128,uint128)", 2766 "value": "OracleUpdate" 2767 }, 2768 "id": 64, 2769 "name": "Identifier", 2770 "src": "557:12:0" 2771 }, 2772 { 2773 "attributes": { 2774 "overloadedDeclarations": [ 2775 null 2776 ], 2777 "referencedDeclaration": 30, 2778 "type": "string memory", 2779 "value": "key" 2780 }, 2781 "id": 65, 2782 "name": "Identifier", 2783 "src": "570:3:0" 2784 }, 2785 { 2786 "attributes": { 2787 "overloadedDeclarations": [ 2788 null 2789 ], 2790 "referencedDeclaration": 32, 2791 "type": "uint128", 2792 "value": "value" 2793 }, 2794 "id": 66, 2795 "name": "Identifier", 2796 "src": "575:5:0" 2797 }, 2798 { 2799 "attributes": { 2800 "overloadedDeclarations": [ 2801 null 2802 ], 2803 "referencedDeclaration": 34, 2804 "type": "uint128", 2805 "value": "timestamp" 2806 }, 2807 "id": 67, 2808 "name": "Identifier", 2809 "src": "582:9:0" 2810 } 2811 ], 2812 "id": 68, 2813 "name": "FunctionCall", 2814 "src": "557:35:0" 2815 } 2816 ], 2817 "id": 69, 2818 "name": "EmitStatement", 2819 "src": "552:40:0" 2820 } 2821 ], 2822 "id": 70, 2823 "name": "Block", 2824 "src": "400:199:0" 2825 } 2826 ], 2827 "id": 71, 2828 "name": "FunctionDefinition", 2829 "src": "322:277:0" 2830 }, 2831 { 2832 "attributes": { 2833 "functionSelector": "960384a0", 2834 "implemented": true, 2835 "isConstructor": false, 2836 "kind": "function", 2837 "modifiers": [ 2838 null 2839 ], 2840 "name": "getValue", 2841 "scope": 135, 2842 "stateMutability": "view", 2843 "virtual": false, 2844 "visibility": "public" 2845 }, 2846 "children": [ 2847 { 2848 "children": [ 2849 { 2850 "attributes": { 2851 "constant": false, 2852 "mutability": "mutable", 2853 "name": "key", 2854 "scope": 113, 2855 "stateVariable": false, 2856 "storageLocation": "memory", 2857 "type": "string", 2858 "visibility": "internal" 2859 }, 2860 "children": [ 2861 { 2862 "attributes": { 2863 "name": "string", 2864 "type": "string" 2865 }, 2866 "id": 72, 2867 "name": "ElementaryTypeName", 2868 "src": "627:6:0" 2869 } 2870 ], 2871 "id": 73, 2872 "name": "VariableDeclaration", 2873 "src": "627:17:0" 2874 } 2875 ], 2876 "id": 74, 2877 "name": "ParameterList", 2878 "src": "626:19:0" 2879 }, 2880 { 2881 "children": [ 2882 { 2883 "attributes": { 2884 "constant": false, 2885 "mutability": "mutable", 2886 "name": "", 2887 "scope": 113, 2888 "stateVariable": false, 2889 "storageLocation": "default", 2890 "type": "uint128", 2891 "visibility": "internal" 2892 }, 2893 "children": [ 2894 { 2895 "attributes": { 2896 "name": "uint128", 2897 "type": "uint128" 2898 }, 2899 "id": 75, 2900 "name": "ElementaryTypeName", 2901 "src": "667:7:0" 2902 } 2903 ], 2904 "id": 76, 2905 "name": "VariableDeclaration", 2906 "src": "667:7:0" 2907 }, 2908 { 2909 "attributes": { 2910 "constant": false, 2911 "mutability": "mutable", 2912 "name": "", 2913 "scope": 113, 2914 "stateVariable": false, 2915 "storageLocation": "default", 2916 "type": "uint128", 2917 "visibility": "internal" 2918 }, 2919 "children": [ 2920 { 2921 "attributes": { 2922 "name": "uint128", 2923 "type": "uint128" 2924 }, 2925 "id": 77, 2926 "name": "ElementaryTypeName", 2927 "src": "676:7:0" 2928 } 2929 ], 2930 "id": 78, 2931 "name": "VariableDeclaration", 2932 "src": "676:7:0" 2933 } 2934 ], 2935 "id": 79, 2936 "name": "ParameterList", 2937 "src": "666:18:0" 2938 }, 2939 { 2940 "children": [ 2941 { 2942 "attributes": { 2943 "assignments": [ 2944 81 2945 ] 2946 }, 2947 "children": [ 2948 { 2949 "attributes": { 2950 "constant": false, 2951 "mutability": "mutable", 2952 "name": "cValue", 2953 "scope": 112, 2954 "stateVariable": false, 2955 "storageLocation": "default", 2956 "type": "uint256", 2957 "visibility": "internal" 2958 }, 2959 "children": [ 2960 { 2961 "attributes": { 2962 "name": "uint256", 2963 "type": "uint256" 2964 }, 2965 "id": 80, 2966 "name": "ElementaryTypeName", 2967 "src": "695:7:0" 2968 } 2969 ], 2970 "id": 81, 2971 "name": "VariableDeclaration", 2972 "src": "695:14:0" 2973 }, 2974 { 2975 "attributes": { 2976 "isConstant": false, 2977 "isLValue": true, 2978 "isPure": false, 2979 "lValueRequested": false, 2980 "type": "uint256" 2981 }, 2982 "children": [ 2983 { 2984 "attributes": { 2985 "overloadedDeclarations": [ 2986 null 2987 ], 2988 "referencedDeclaration": 5, 2989 "type": "mapping(string memory => uint256)", 2990 "value": "values" 2991 }, 2992 "id": 82, 2993 "name": "Identifier", 2994 "src": "712:6:0" 2995 }, 2996 { 2997 "attributes": { 2998 "overloadedDeclarations": [ 2999 null 3000 ], 3001 "referencedDeclaration": 73, 3002 "type": "string memory", 3003 "value": "key" 3004 }, 3005 "id": 83, 3006 "name": "Identifier", 3007 "src": "719:3:0" 3008 } 3009 ], 3010 "id": 84, 3011 "name": "IndexAccess", 3012 "src": "712:11:0" 3013 } 3014 ], 3015 "id": 85, 3016 "name": "VariableDeclarationStatement", 3017 "src": "695:28:0" 3018 }, 3019 { 3020 "attributes": { 3021 "assignments": [ 3022 87 3023 ] 3024 }, 3025 "children": [ 3026 { 3027 "attributes": { 3028 "constant": false, 3029 "mutability": "mutable", 3030 "name": "timestamp", 3031 "scope": 112, 3032 "stateVariable": false, 3033 "storageLocation": "default", 3034 "type": "uint128", 3035 "visibility": "internal" 3036 }, 3037 "children": [ 3038 { 3039 "attributes": { 3040 "name": "uint128", 3041 "type": "uint128" 3042 }, 3043 "id": 86, 3044 "name": "ElementaryTypeName", 3045 "src": "733:7:0" 3046 } 3047 ], 3048 "id": 87, 3049 "name": "VariableDeclaration", 3050 "src": "733:17:0" 3051 }, 3052 { 3053 "attributes": { 3054 "isConstant": false, 3055 "isLValue": false, 3056 "isPure": false, 3057 "isStructConstructorCall": false, 3058 "lValueRequested": false, 3059 "names": [ 3060 null 3061 ], 3062 "tryCall": false, 3063 "type": "uint128", 3064 "type_conversion": true 3065 }, 3066 "children": [ 3067 { 3068 "attributes": { 3069 "argumentTypes": [ 3070 { 3071 "typeIdentifier": "t_uint256", 3072 "typeString": "uint256" 3073 } 3074 ], 3075 "isConstant": false, 3076 "isInlineArray": false, 3077 "isLValue": false, 3078 "isPure": true, 3079 "lValueRequested": false, 3080 "type": "type(uint128)" 3081 }, 3082 "children": [ 3083 { 3084 "attributes": { 3085 "isConstant": false, 3086 "isLValue": false, 3087 "isPure": true, 3088 "lValueRequested": false, 3089 "type": "type(uint128)" 3090 }, 3091 "children": [ 3092 { 3093 "attributes": { 3094 "name": "uint128" 3095 }, 3096 "id": 88, 3097 "name": "ElementaryTypeName", 3098 "src": "754:7:0" 3099 } 3100 ], 3101 "id": 89, 3102 "name": "ElementaryTypeNameExpression", 3103 "src": "754:7:0" 3104 } 3105 ], 3106 "id": 90, 3107 "name": "TupleExpression", 3108 "src": "753:9:0" 3109 }, 3110 { 3111 "attributes": { 3112 "commonType": { 3113 "typeIdentifier": "t_uint256", 3114 "typeString": "uint256" 3115 }, 3116 "isConstant": false, 3117 "isLValue": false, 3118 "isPure": false, 3119 "lValueRequested": false, 3120 "operator": "%", 3121 "type": "uint256" 3122 }, 3123 "children": [ 3124 { 3125 "attributes": { 3126 "overloadedDeclarations": [ 3127 null 3128 ], 3129 "referencedDeclaration": 81, 3130 "type": "uint256", 3131 "value": "cValue" 3132 }, 3133 "id": 91, 3134 "name": "Identifier", 3135 "src": "763:6:0" 3136 }, 3137 { 3138 "attributes": { 3139 "commonType": { 3140 "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", 3141 "typeString": "int_const 3402...(31 digits omitted)...1456" 3142 }, 3143 "isConstant": false, 3144 "isLValue": false, 3145 "isPure": true, 3146 "lValueRequested": false, 3147 "operator": "**", 3148 "type": "int_const 3402...(31 digits omitted)...1456" 3149 }, 3150 "children": [ 3151 { 3152 "attributes": { 3153 "hexvalue": "32", 3154 "isConstant": false, 3155 "isLValue": false, 3156 "isPure": true, 3157 "lValueRequested": false, 3158 "token": "number", 3159 "type": "int_const 2", 3160 "value": "2" 3161 }, 3162 "id": 92, 3163 "name": "Literal", 3164 "src": "772:1:0" 3165 }, 3166 { 3167 "attributes": { 3168 "hexvalue": "313238", 3169 "isConstant": false, 3170 "isLValue": false, 3171 "isPure": true, 3172 "lValueRequested": false, 3173 "token": "number", 3174 "type": "int_const 128", 3175 "value": "128" 3176 }, 3177 "id": 93, 3178 "name": "Literal", 3179 "src": "775:3:0" 3180 } 3181 ], 3182 "id": 94, 3183 "name": "BinaryOperation", 3184 "src": "772:6:0" 3185 } 3186 ], 3187 "id": 95, 3188 "name": "BinaryOperation", 3189 "src": "763:15:0" 3190 } 3191 ], 3192 "id": 96, 3193 "name": "FunctionCall", 3194 "src": "753:26:0" 3195 } 3196 ], 3197 "id": 97, 3198 "name": "VariableDeclarationStatement", 3199 "src": "733:46:0" 3200 }, 3201 { 3202 "attributes": { 3203 "assignments": [ 3204 99 3205 ] 3206 }, 3207 "children": [ 3208 { 3209 "attributes": { 3210 "constant": false, 3211 "mutability": "mutable", 3212 "name": "value", 3213 "scope": 112, 3214 "stateVariable": false, 3215 "storageLocation": "default", 3216 "type": "uint128", 3217 "visibility": "internal" 3218 }, 3219 "children": [ 3220 { 3221 "attributes": { 3222 "name": "uint128", 3223 "type": "uint128" 3224 }, 3225 "id": 98, 3226 "name": "ElementaryTypeName", 3227 "src": "789:7:0" 3228 } 3229 ], 3230 "id": 99, 3231 "name": "VariableDeclaration", 3232 "src": "789:13:0" 3233 }, 3234 { 3235 "attributes": { 3236 "isConstant": false, 3237 "isLValue": false, 3238 "isPure": false, 3239 "isStructConstructorCall": false, 3240 "lValueRequested": false, 3241 "names": [ 3242 null 3243 ], 3244 "tryCall": false, 3245 "type": "uint128", 3246 "type_conversion": true 3247 }, 3248 "children": [ 3249 { 3250 "attributes": { 3251 "argumentTypes": [ 3252 { 3253 "typeIdentifier": "t_uint256", 3254 "typeString": "uint256" 3255 } 3256 ], 3257 "isConstant": false, 3258 "isInlineArray": false, 3259 "isLValue": false, 3260 "isPure": true, 3261 "lValueRequested": false, 3262 "type": "type(uint128)" 3263 }, 3264 "children": [ 3265 { 3266 "attributes": { 3267 "isConstant": false, 3268 "isLValue": false, 3269 "isPure": true, 3270 "lValueRequested": false, 3271 "type": "type(uint128)" 3272 }, 3273 "children": [ 3274 { 3275 "attributes": { 3276 "name": "uint128" 3277 }, 3278 "id": 100, 3279 "name": "ElementaryTypeName", 3280 "src": "806:7:0" 3281 } 3282 ], 3283 "id": 101, 3284 "name": "ElementaryTypeNameExpression", 3285 "src": "806:7:0" 3286 } 3287 ], 3288 "id": 102, 3289 "name": "TupleExpression", 3290 "src": "805:9:0" 3291 }, 3292 { 3293 "attributes": { 3294 "commonType": { 3295 "typeIdentifier": "t_uint256", 3296 "typeString": "uint256" 3297 }, 3298 "isConstant": false, 3299 "isLValue": false, 3300 "isPure": false, 3301 "lValueRequested": false, 3302 "operator": ">>", 3303 "type": "uint256" 3304 }, 3305 "children": [ 3306 { 3307 "attributes": { 3308 "overloadedDeclarations": [ 3309 null 3310 ], 3311 "referencedDeclaration": 81, 3312 "type": "uint256", 3313 "value": "cValue" 3314 }, 3315 "id": 103, 3316 "name": "Identifier", 3317 "src": "815:6:0" 3318 }, 3319 { 3320 "attributes": { 3321 "hexvalue": "313238", 3322 "isConstant": false, 3323 "isLValue": false, 3324 "isPure": true, 3325 "lValueRequested": false, 3326 "token": "number", 3327 "type": "int_const 128", 3328 "value": "128" 3329 }, 3330 "id": 104, 3331 "name": "Literal", 3332 "src": "825:3:0" 3333 } 3334 ], 3335 "id": 105, 3336 "name": "BinaryOperation", 3337 "src": "815:13:0" 3338 } 3339 ], 3340 "id": 106, 3341 "name": "FunctionCall", 3342 "src": "805:24:0" 3343 } 3344 ], 3345 "id": 107, 3346 "name": "VariableDeclarationStatement", 3347 "src": "789:40:0" 3348 }, 3349 { 3350 "attributes": { 3351 "functionReturnParameters": 79 3352 }, 3353 "children": [ 3354 { 3355 "attributes": { 3356 "isConstant": false, 3357 "isInlineArray": false, 3358 "isLValue": false, 3359 "isPure": false, 3360 "lValueRequested": false, 3361 "type": "tuple(uint128,uint128)" 3362 }, 3363 "children": [ 3364 { 3365 "attributes": { 3366 "overloadedDeclarations": [ 3367 null 3368 ], 3369 "referencedDeclaration": 99, 3370 "type": "uint128", 3371 "value": "value" 3372 }, 3373 "id": 108, 3374 "name": "Identifier", 3375 "src": "847:5:0" 3376 }, 3377 { 3378 "attributes": { 3379 "overloadedDeclarations": [ 3380 null 3381 ], 3382 "referencedDeclaration": 87, 3383 "type": "uint128", 3384 "value": "timestamp" 3385 }, 3386 "id": 109, 3387 "name": "Identifier", 3388 "src": "854:9:0" 3389 } 3390 ], 3391 "id": 110, 3392 "name": "TupleExpression", 3393 "src": "846:18:0" 3394 } 3395 ], 3396 "id": 111, 3397 "name": "Return", 3398 "src": "839:25:0" 3399 } 3400 ], 3401 "id": 112, 3402 "name": "Block", 3403 "src": "685:186:0" 3404 } 3405 ], 3406 "id": 113, 3407 "name": "FunctionDefinition", 3408 "src": "609:262:0" 3409 }, 3410 { 3411 "attributes": { 3412 "functionSelector": "6aa45efc", 3413 "implemented": true, 3414 "isConstructor": false, 3415 "kind": "function", 3416 "modifiers": [ 3417 null 3418 ], 3419 "name": "updateOracleUpdaterAddress", 3420 "scope": 135, 3421 "stateMutability": "nonpayable", 3422 "virtual": false, 3423 "visibility": "public" 3424 }, 3425 "children": [ 3426 { 3427 "children": [ 3428 { 3429 "attributes": { 3430 "constant": false, 3431 "mutability": "mutable", 3432 "name": "newOracleUpdaterAddress", 3433 "scope": 134, 3434 "stateVariable": false, 3435 "storageLocation": "default", 3436 "type": "address", 3437 "visibility": "internal" 3438 }, 3439 "children": [ 3440 { 3441 "attributes": { 3442 "name": "address", 3443 "stateMutability": "nonpayable", 3444 "type": "address" 3445 }, 3446 "id": 114, 3447 "name": "ElementaryTypeName", 3448 "src": "917:7:0" 3449 } 3450 ], 3451 "id": 115, 3452 "name": "VariableDeclaration", 3453 "src": "917:31:0" 3454 } 3455 ], 3456 "id": 116, 3457 "name": "ParameterList", 3458 "src": "916:33:0" 3459 }, 3460 { 3461 "attributes": { 3462 "parameters": [ 3463 null 3464 ] 3465 }, 3466 "children": [], 3467 "id": 117, 3468 "name": "ParameterList", 3469 "src": "957:0:0" 3470 }, 3471 { 3472 "children": [ 3473 { 3474 "children": [ 3475 { 3476 "attributes": { 3477 "isConstant": false, 3478 "isLValue": false, 3479 "isPure": false, 3480 "isStructConstructorCall": false, 3481 "lValueRequested": false, 3482 "names": [ 3483 null 3484 ], 3485 "tryCall": false, 3486 "type": "tuple()", 3487 "type_conversion": false 3488 }, 3489 "children": [ 3490 { 3491 "attributes": { 3492 "argumentTypes": [ 3493 { 3494 "typeIdentifier": "t_bool", 3495 "typeString": "bool" 3496 } 3497 ], 3498 "overloadedDeclarations": [ 3499 -18, 3500 -18 3501 ], 3502 "referencedDeclaration": -18, 3503 "type": "function (bool) pure", 3504 "value": "require" 3505 }, 3506 "id": 118, 3507 "name": "Identifier", 3508 "src": "967:7:0" 3509 }, 3510 { 3511 "attributes": { 3512 "commonType": { 3513 "typeIdentifier": "t_address", 3514 "typeString": "address" 3515 }, 3516 "isConstant": false, 3517 "isLValue": false, 3518 "isPure": false, 3519 "lValueRequested": false, 3520 "operator": "==", 3521 "type": "bool" 3522 }, 3523 "children": [ 3524 { 3525 "attributes": { 3526 "isConstant": false, 3527 "isLValue": false, 3528 "isPure": false, 3529 "lValueRequested": false, 3530 "member_name": "sender", 3531 "type": "address payable" 3532 }, 3533 "children": [ 3534 { 3535 "attributes": { 3536 "overloadedDeclarations": [ 3537 null 3538 ], 3539 "referencedDeclaration": -15, 3540 "type": "msg", 3541 "value": "msg" 3542 }, 3543 "id": 119, 3544 "name": "Identifier", 3545 "src": "975:3:0" 3546 } 3547 ], 3548 "id": 120, 3549 "name": "MemberAccess", 3550 "src": "975:10:0" 3551 }, 3552 { 3553 "attributes": { 3554 "overloadedDeclarations": [ 3555 null 3556 ], 3557 "referencedDeclaration": 7, 3558 "type": "address", 3559 "value": "oracleUpdater" 3560 }, 3561 "id": 121, 3562 "name": "Identifier", 3563 "src": "989:13:0" 3564 } 3565 ], 3566 "id": 122, 3567 "name": "BinaryOperation", 3568 "src": "975:27:0" 3569 } 3570 ], 3571 "id": 123, 3572 "name": "FunctionCall", 3573 "src": "967:36:0" 3574 } 3575 ], 3576 "id": 124, 3577 "name": "ExpressionStatement", 3578 "src": "967:36:0" 3579 }, 3580 { 3581 "children": [ 3582 { 3583 "attributes": { 3584 "isConstant": false, 3585 "isLValue": false, 3586 "isPure": false, 3587 "lValueRequested": false, 3588 "operator": "=", 3589 "type": "address" 3590 }, 3591 "children": [ 3592 { 3593 "attributes": { 3594 "overloadedDeclarations": [ 3595 null 3596 ], 3597 "referencedDeclaration": 7, 3598 "type": "address", 3599 "value": "oracleUpdater" 3600 }, 3601 "id": 125, 3602 "name": "Identifier", 3603 "src": "1013:13:0" 3604 }, 3605 { 3606 "attributes": { 3607 "overloadedDeclarations": [ 3608 null 3609 ], 3610 "referencedDeclaration": 115, 3611 "type": "address", 3612 "value": "newOracleUpdaterAddress" 3613 }, 3614 "id": 126, 3615 "name": "Identifier", 3616 "src": "1029:23:0" 3617 } 3618 ], 3619 "id": 127, 3620 "name": "Assignment", 3621 "src": "1013:39:0" 3622 } 3623 ], 3624 "id": 128, 3625 "name": "ExpressionStatement", 3626 "src": "1013:39:0" 3627 }, 3628 { 3629 "children": [ 3630 { 3631 "attributes": { 3632 "isConstant": false, 3633 "isLValue": false, 3634 "isPure": false, 3635 "isStructConstructorCall": false, 3636 "lValueRequested": false, 3637 "names": [ 3638 null 3639 ], 3640 "tryCall": false, 3641 "type": "tuple()", 3642 "type_conversion": false 3643 }, 3644 "children": [ 3645 { 3646 "attributes": { 3647 "argumentTypes": [ 3648 { 3649 "typeIdentifier": "t_address", 3650 "typeString": "address" 3651 } 3652 ], 3653 "overloadedDeclarations": [ 3654 null 3655 ], 3656 "referencedDeclaration": 19, 3657 "type": "function (address)", 3658 "value": "UpdaterAddressChange" 3659 }, 3660 "id": 129, 3661 "name": "Identifier", 3662 "src": "1067:20:0" 3663 }, 3664 { 3665 "attributes": { 3666 "overloadedDeclarations": [ 3667 null 3668 ], 3669 "referencedDeclaration": 115, 3670 "type": "address", 3671 "value": "newOracleUpdaterAddress" 3672 }, 3673 "id": 130, 3674 "name": "Identifier", 3675 "src": "1088:23:0" 3676 } 3677 ], 3678 "id": 131, 3679 "name": "FunctionCall", 3680 "src": "1067:45:0" 3681 } 3682 ], 3683 "id": 132, 3684 "name": "EmitStatement", 3685 "src": "1062:50:0" 3686 } 3687 ], 3688 "id": 133, 3689 "name": "Block", 3690 "src": "957:162:0" 3691 } 3692 ], 3693 "id": 134, 3694 "name": "FunctionDefinition", 3695 "src": "881:238:0" 3696 } 3697 ], 3698 "id": 135, 3699 "name": "ContractDefinition", 3700 "src": "24:1097:0" 3701 } 3702 ], 3703 "id": 136, 3704 "name": "SourceUnit", 3705 "src": "0:1122:0" 3706 }, 3707 "compiler": { 3708 "name": "solc", 3709 "version": "0.7.4+commit.3f05b770.Emscripten.clang" 3710 }, 3711 "networks": {}, 3712 "schemaVersion": "3.4.3", 3713 "updatedAt": "2021-11-26T16:38:32.696Z", 3714 "devdoc": { 3715 "kind": "dev", 3716 "methods": {}, 3717 "version": 1 3718 }, 3719 "userdoc": { 3720 "kind": "user", 3721 "methods": {}, 3722 "version": 1 3723 } 3724 }