{
  "contractName": "TestBtcUsdChainlinkAggregator",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "aggregator",
      "outputs": [
        {
          "internalType": "contract IChainlinkAccessControlAggregator",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "maxAnswer",
      "outputs": [
        {
          "internalType": "int192",
          "name": "",
          "type": "int192"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "minAnswer",
      "outputs": [
        {
          "internalType": "int192",
          "name": "",
          "type": "int192"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "latestRoundData",
      "outputs": [
        {
          "internalType": "uint80",
          "name": "roundId",
          "type": "uint80"
        },
        {
          "internalType": "int256",
          "name": "answer",
          "type": "int256"
        },
        {
          "internalType": "uint256",
          "name": "startedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "updatedAt",
          "type": "uint256"
        },
        {
          "internalType": "uint80",
          "name": "answeredInRound",
          "type": "uint80"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"aggregator\",\"outputs\":[{\"internalType\":\"contract IChainlinkAccessControlAggregator\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"latestRoundData\",\"outputs\":[{\"internalType\":\"uint80\",\"name\":\"roundId\",\"type\":\"uint80\"},{\"internalType\":\"int256\",\"name\":\"answer\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"startedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"updatedAt\",\"type\":\"uint256\"},{\"internalType\":\"uint80\",\"name\":\"answeredInRound\",\"type\":\"uint80\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxAnswer\",\"outputs\":[{\"internalType\":\"int192\",\"name\":\"\",\"type\":\"int192\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minAnswer\",\"outputs\":[{\"internalType\":\"int192\",\"name\":\"\",\"type\":\"int192\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Gets the latest price from the Chainlink Oracle Network. Amount of decimals depends on the base.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestBtcUsdChainlinkAggregator.sol\":\"TestBtcUsdChainlinkAggregator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IChainlinkAccessControlAggregator.sol\":{\"keccak256\":\"0xbb94dc91633d6fb20e1d7e2b5ce1f11346e89a6bfc8c3ac5d163c35a3e4ad60a\",\"urls\":[\"bzz-raw://264c7c039caf44b1866769feb237010651730d546b54bb6f2b7bc77cf3b6c9c9\",\"dweb:/ipfs/QmX8TTF8E2G8TT1yig6qHC8amWDwaq1GG6iaKYTTHsYsjo\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IChainlinkAggregator.sol\":{\"keccak256\":\"0x0209c9f35dbe82857a6441d8d61f271baeb5098549eabf5fc6d33503d0d3e073\",\"urls\":[\"bzz-raw://2f6af7b5198548a9a5e3d8a30203d7cd003eae93cca22b8466c10e0dcfcbc367\",\"dweb:/ipfs/Qme3bQ58ZoQLYDoJQHnvEeQZqgqyWTFBYBmMoiem7LPXmz\"]},\"/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestBtcUsdChainlinkAggregator.sol\":{\"keccak256\":\"0xba583d06bf097bf1a0d5c311ba56aa1e66118119cdc0718484ddfc4333f8795c\",\"urls\":[\"bzz-raw://e3b240e4a498a68c2273799f036bcc015b389ec0a338b3346b50e4e89a5db866\",\"dweb:/ipfs/QmQmwvXE2uDsQZV3PPBj5WdVcTXBACSzbZSD1gwkPF2WWn\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5061019a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063313ce56711610050578063313ce567146100be57806370da2f67146100dc578063feaf968c146100e457610067565b806322adbc781461006c578063245a7bfc1461008d575b600080fd5b61007461012b565b60408051601792830b90920b8252519081900360200190f35b610095610130565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100c6610134565b6040805160ff9092168252519081900360200190f35b610074610139565b6100ec610153565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b600190565b3090565b600890565b75ffffffffffffffffffffffffffffffffffffffffffff90565b600064dfff2c4b80814281909192939456fea265627a7a72315820c46188edfac7ef38acfb28a58b8ae50f5208c93c9a39ce15b61accc5f06918c764736f6c63430005100032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c8063313ce56711610050578063313ce567146100be57806370da2f67146100dc578063feaf968c146100e457610067565b806322adbc781461006c578063245a7bfc1461008d575b600080fd5b61007461012b565b60408051601792830b90920b8252519081900360200190f35b610095610130565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100c6610134565b6040805160ff9092168252519081900360200190f35b610074610139565b6100ec610153565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b600190565b3090565b600890565b75ffffffffffffffffffffffffffffffffffffffffffff90565b600064dfff2c4b80814281909192939456fea265627a7a72315820c46188edfac7ef38acfb28a58b8ae50f5208c93c9a39ce15b61accc5f06918c764736f6c63430005100032",
  "sourceMap": "937:956:112:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:956:112;;;;;;;",
  "deployedSourceMap": "937:956:112:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;937:956:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1521:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;1042:257;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1305:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1386:129;;;:::i;1604:287::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1521:77;1590:1;1521:77;:::o;1042:257::-;1286:4;1042:257;:::o;1305:75::-;1372:1;1305:75;:::o;1386:129::-;1455:53;1386:129;:::o;1604:287::-;1675:14;1848:12;1675:14;1865:15;1675:14;1604:287;;;;;:::o",
  "source": "/*\n\n    Copyright 2020 Dolomite.\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n*/\n\npragma solidity ^0.5.7;\n\nimport { IChainlinkAggregator } from \"../external/interfaces/IChainlinkAggregator.sol\";\nimport { IChainlinkAccessControlAggregator } from \"../external/interfaces/IChainlinkAccessControlAggregator.sol\";\n\n\n/**\n * @dev Gets the latest price from the Chainlink Oracle Network. Amount of decimals depends on the base.\n */\ncontract TestBtcUsdChainlinkAggregator is IChainlinkAggregator, IChainlinkAccessControlAggregator {\n\n    function aggregator() external view returns (IChainlinkAccessControlAggregator) {\n        // For the sake of simplicity, we implement the IChainlinkAccessControlAggregator interface here\n        return IChainlinkAccessControlAggregator(address(this));\n    }\n\n    function decimals() external view returns (uint8) {\n        return 8;\n    }\n\n    function maxAnswer() external view returns (int192) {\n        return 95780971304118053647396689196894323976171195136475135;\n    }\n\n    function minAnswer() external view returns (int192) {\n        return 1;\n    }\n\n    function latestRoundData()\n    external\n    view\n    returns (\n        uint80 roundId,\n        int256 answer,\n        uint256 startedAt,\n        uint256 updatedAt,\n        uint80 answeredInRound\n    ) {\n        // $9,620.588\n        return (0, 962058800000, 0, block.timestamp, 0);\n    }\n}\n",
  "sourcePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestBtcUsdChainlinkAggregator.sol",
  "ast": {
    "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestBtcUsdChainlinkAggregator.sol",
    "exportedSymbols": {
      "TestBtcUsdChainlinkAggregator": [
        32809
      ]
    },
    "id": 32810,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 32742,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".7"
        ],
        "nodeType": "PragmaDirective",
        "src": "595:23:112"
      },
      {
        "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IChainlinkAggregator.sol",
        "file": "../external/interfaces/IChainlinkAggregator.sol",
        "id": 32744,
        "nodeType": "ImportDirective",
        "scope": 32810,
        "sourceUnit": 4191,
        "src": "620:87:112",
        "symbolAliases": [
          {
            "foreign": 32743,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IChainlinkAccessControlAggregator.sol",
        "file": "../external/interfaces/IChainlinkAccessControlAggregator.sol",
        "id": 32746,
        "nodeType": "ImportDirective",
        "scope": 32810,
        "sourceUnit": 4162,
        "src": "708:113:112",
        "symbolAliases": [
          {
            "foreign": 32745,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 32747,
              "name": "IChainlinkAggregator",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4190,
              "src": "979:20:112",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IChainlinkAggregator_$4190",
                "typeString": "contract IChainlinkAggregator"
              }
            },
            "id": 32748,
            "nodeType": "InheritanceSpecifier",
            "src": "979:20:112"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 32749,
              "name": "IChainlinkAccessControlAggregator",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4161,
              "src": "1001:33:112",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                "typeString": "contract IChainlinkAccessControlAggregator"
              }
            },
            "id": 32750,
            "nodeType": "InheritanceSpecifier",
            "src": "1001:33:112"
          }
        ],
        "contractDependencies": [
          4161,
          4190
        ],
        "contractKind": "contract",
        "documentation": "@dev Gets the latest price from the Chainlink Oracle Network. Amount of decimals depends on the base.",
        "fullyImplemented": true,
        "id": 32809,
        "linearizedBaseContracts": [
          32809,
          4161,
          4190
        ],
        "name": "TestBtcUsdChainlinkAggregator",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 32761,
              "nodeType": "Block",
              "src": "1122:177:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 32757,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38365,
                            "src": "1286:4:112",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TestBtcUsdChainlinkAggregator_$32809",
                              "typeString": "contract TestBtcUsdChainlinkAggregator"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_TestBtcUsdChainlinkAggregator_$32809",
                              "typeString": "contract TestBtcUsdChainlinkAggregator"
                            }
                          ],
                          "id": 32756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1278:7:112",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 32758,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1278:13:112",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 32755,
                      "name": "IChainlinkAccessControlAggregator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4161,
                      "src": "1244:33:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IChainlinkAccessControlAggregator_$4161_$",
                        "typeString": "type(contract IChainlinkAccessControlAggregator)"
                      }
                    },
                    "id": 32759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1244:48:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                      "typeString": "contract IChainlinkAccessControlAggregator"
                    }
                  },
                  "functionReturnParameters": 32754,
                  "id": 32760,
                  "nodeType": "Return",
                  "src": "1237:55:112"
                }
              ]
            },
            "documentation": null,
            "id": 32762,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "aggregator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32751,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1061:2:112"
            },
            "returnParameters": {
              "id": 32754,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32753,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32762,
                  "src": "1087:33:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                    "typeString": "contract IChainlinkAccessControlAggregator"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 32752,
                    "name": "IChainlinkAccessControlAggregator",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4161,
                    "src": "1087:33:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                      "typeString": "contract IChainlinkAccessControlAggregator"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1086:35:112"
            },
            "scope": 32809,
            "src": "1042:257:112",
            "stateMutability": "view",
            "superFunction": 4171,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32769,
              "nodeType": "Block",
              "src": "1355:25:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "38",
                    "id": 32767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1372:1:112",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_8_by_1",
                      "typeString": "int_const 8"
                    },
                    "value": "8"
                  },
                  "functionReturnParameters": 32766,
                  "id": 32768,
                  "nodeType": "Return",
                  "src": "1365:8:112"
                }
              ]
            },
            "documentation": null,
            "id": 32770,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32763,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1322:2:112"
            },
            "returnParameters": {
              "id": 32766,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32765,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32770,
                  "src": "1348:5:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 32764,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1348:5:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1347:7:112"
            },
            "scope": 32809,
            "src": "1305:75:112",
            "stateMutability": "view",
            "superFunction": 4176,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32777,
              "nodeType": "Block",
              "src": "1438:77:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "3935373830393731333034313138303533363437333936363839313936383934333233393736313731313935313336343735313335",
                    "id": 32775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1455:53:112",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_95780971304118053647396689196894323976171195136475135_by_1",
                      "typeString": "int_const 9578...(45 digits omitted)...5135"
                    },
                    "value": "95780971304118053647396689196894323976171195136475135"
                  },
                  "functionReturnParameters": 32774,
                  "id": 32776,
                  "nodeType": "Return",
                  "src": "1448:60:112"
                }
              ]
            },
            "documentation": null,
            "id": 32778,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "maxAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32771,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1404:2:112"
            },
            "returnParameters": {
              "id": 32774,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32773,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32778,
                  "src": "1430:6:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int192",
                    "typeString": "int192"
                  },
                  "typeName": {
                    "id": 32772,
                    "name": "int192",
                    "nodeType": "ElementaryTypeName",
                    "src": "1430:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int192",
                      "typeString": "int192"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1429:8:112"
            },
            "scope": 32809,
            "src": "1386:129:112",
            "stateMutability": "view",
            "superFunction": 4160,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32785,
              "nodeType": "Block",
              "src": "1573:25:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "31",
                    "id": 32783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1590:1:112",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_1_by_1",
                      "typeString": "int_const 1"
                    },
                    "value": "1"
                  },
                  "functionReturnParameters": 32782,
                  "id": 32784,
                  "nodeType": "Return",
                  "src": "1583:8:112"
                }
              ]
            },
            "documentation": null,
            "id": 32786,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "minAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32779,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1539:2:112"
            },
            "returnParameters": {
              "id": 32782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32781,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32786,
                  "src": "1565:6:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int192",
                    "typeString": "int192"
                  },
                  "typeName": {
                    "id": 32780,
                    "name": "int192",
                    "nodeType": "ElementaryTypeName",
                    "src": "1565:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int192",
                      "typeString": "int192"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1564:8:112"
            },
            "scope": 32809,
            "src": "1521:77:112",
            "stateMutability": "view",
            "superFunction": 4155,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32807,
              "nodeType": "Block",
              "src": "1805:86:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 32799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1845:1:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "393632303538383030303030",
                        "id": 32800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1848:12:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_962058800000_by_1",
                          "typeString": "int_const 962058800000"
                        },
                        "value": "962058800000"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 32801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1862:1:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 32802,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38097,
                          "src": "1865:5:112",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 32803,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1865:15:112",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 32804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1882:1:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "id": 32805,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1844:40:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_962058800000_by_1_$_t_rational_0_by_1_$_t_uint256_$_t_rational_0_by_1_$",
                      "typeString": "tuple(int_const 0,int_const 962058800000,int_const 0,uint256,int_const 0)"
                    }
                  },
                  "functionReturnParameters": 32798,
                  "id": 32806,
                  "nodeType": "Return",
                  "src": "1837:47:112"
                }
              ]
            },
            "documentation": null,
            "id": 32808,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "latestRoundData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32787,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1628:2:112"
            },
            "returnParameters": {
              "id": 32798,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32789,
                  "name": "roundId",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1675:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 32788,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32791,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1699:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 32790,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1699:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32793,
                  "name": "startedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1722:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 32792,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1722:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32795,
                  "name": "updatedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1749:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 32794,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1749:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32797,
                  "name": "answeredInRound",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1776:22:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 32796,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "1776:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1665:139:112"
            },
            "scope": 32809,
            "src": "1604:287:112",
            "stateMutability": "view",
            "superFunction": 4189,
            "visibility": "external"
          }
        ],
        "scope": 32810,
        "src": "937:956:112"
      }
    ],
    "src": "595:1299:112"
  },
  "legacyAST": {
    "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/testing/TestBtcUsdChainlinkAggregator.sol",
    "exportedSymbols": {
      "TestBtcUsdChainlinkAggregator": [
        32809
      ]
    },
    "id": 32810,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 32742,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".7"
        ],
        "nodeType": "PragmaDirective",
        "src": "595:23:112"
      },
      {
        "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IChainlinkAggregator.sol",
        "file": "../external/interfaces/IChainlinkAggregator.sol",
        "id": 32744,
        "nodeType": "ImportDirective",
        "scope": 32810,
        "sourceUnit": 4191,
        "src": "620:87:112",
        "symbolAliases": [
          {
            "foreign": 32743,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/cdc218/projects/dolomite/dolomite-protocol-v2/contracts/external/interfaces/IChainlinkAccessControlAggregator.sol",
        "file": "../external/interfaces/IChainlinkAccessControlAggregator.sol",
        "id": 32746,
        "nodeType": "ImportDirective",
        "scope": 32810,
        "sourceUnit": 4162,
        "src": "708:113:112",
        "symbolAliases": [
          {
            "foreign": 32745,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 32747,
              "name": "IChainlinkAggregator",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4190,
              "src": "979:20:112",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IChainlinkAggregator_$4190",
                "typeString": "contract IChainlinkAggregator"
              }
            },
            "id": 32748,
            "nodeType": "InheritanceSpecifier",
            "src": "979:20:112"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 32749,
              "name": "IChainlinkAccessControlAggregator",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4161,
              "src": "1001:33:112",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                "typeString": "contract IChainlinkAccessControlAggregator"
              }
            },
            "id": 32750,
            "nodeType": "InheritanceSpecifier",
            "src": "1001:33:112"
          }
        ],
        "contractDependencies": [
          4161,
          4190
        ],
        "contractKind": "contract",
        "documentation": "@dev Gets the latest price from the Chainlink Oracle Network. Amount of decimals depends on the base.",
        "fullyImplemented": true,
        "id": 32809,
        "linearizedBaseContracts": [
          32809,
          4161,
          4190
        ],
        "name": "TestBtcUsdChainlinkAggregator",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 32761,
              "nodeType": "Block",
              "src": "1122:177:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 32757,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38365,
                            "src": "1286:4:112",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_TestBtcUsdChainlinkAggregator_$32809",
                              "typeString": "contract TestBtcUsdChainlinkAggregator"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_TestBtcUsdChainlinkAggregator_$32809",
                              "typeString": "contract TestBtcUsdChainlinkAggregator"
                            }
                          ],
                          "id": 32756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1278:7:112",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 32758,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1278:13:112",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 32755,
                      "name": "IChainlinkAccessControlAggregator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4161,
                      "src": "1244:33:112",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IChainlinkAccessControlAggregator_$4161_$",
                        "typeString": "type(contract IChainlinkAccessControlAggregator)"
                      }
                    },
                    "id": 32759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1244:48:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                      "typeString": "contract IChainlinkAccessControlAggregator"
                    }
                  },
                  "functionReturnParameters": 32754,
                  "id": 32760,
                  "nodeType": "Return",
                  "src": "1237:55:112"
                }
              ]
            },
            "documentation": null,
            "id": 32762,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "aggregator",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32751,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1061:2:112"
            },
            "returnParameters": {
              "id": 32754,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32753,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32762,
                  "src": "1087:33:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                    "typeString": "contract IChainlinkAccessControlAggregator"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 32752,
                    "name": "IChainlinkAccessControlAggregator",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 4161,
                    "src": "1087:33:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IChainlinkAccessControlAggregator_$4161",
                      "typeString": "contract IChainlinkAccessControlAggregator"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1086:35:112"
            },
            "scope": 32809,
            "src": "1042:257:112",
            "stateMutability": "view",
            "superFunction": 4171,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32769,
              "nodeType": "Block",
              "src": "1355:25:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "38",
                    "id": 32767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1372:1:112",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_8_by_1",
                      "typeString": "int_const 8"
                    },
                    "value": "8"
                  },
                  "functionReturnParameters": 32766,
                  "id": 32768,
                  "nodeType": "Return",
                  "src": "1365:8:112"
                }
              ]
            },
            "documentation": null,
            "id": 32770,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32763,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1322:2:112"
            },
            "returnParameters": {
              "id": 32766,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32765,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32770,
                  "src": "1348:5:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 32764,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1348:5:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1347:7:112"
            },
            "scope": 32809,
            "src": "1305:75:112",
            "stateMutability": "view",
            "superFunction": 4176,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32777,
              "nodeType": "Block",
              "src": "1438:77:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "3935373830393731333034313138303533363437333936363839313936383934333233393736313731313935313336343735313335",
                    "id": 32775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1455:53:112",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_95780971304118053647396689196894323976171195136475135_by_1",
                      "typeString": "int_const 9578...(45 digits omitted)...5135"
                    },
                    "value": "95780971304118053647396689196894323976171195136475135"
                  },
                  "functionReturnParameters": 32774,
                  "id": 32776,
                  "nodeType": "Return",
                  "src": "1448:60:112"
                }
              ]
            },
            "documentation": null,
            "id": 32778,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "maxAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32771,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1404:2:112"
            },
            "returnParameters": {
              "id": 32774,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32773,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32778,
                  "src": "1430:6:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int192",
                    "typeString": "int192"
                  },
                  "typeName": {
                    "id": 32772,
                    "name": "int192",
                    "nodeType": "ElementaryTypeName",
                    "src": "1430:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int192",
                      "typeString": "int192"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1429:8:112"
            },
            "scope": 32809,
            "src": "1386:129:112",
            "stateMutability": "view",
            "superFunction": 4160,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32785,
              "nodeType": "Block",
              "src": "1573:25:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "31",
                    "id": 32783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1590:1:112",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_1_by_1",
                      "typeString": "int_const 1"
                    },
                    "value": "1"
                  },
                  "functionReturnParameters": 32782,
                  "id": 32784,
                  "nodeType": "Return",
                  "src": "1583:8:112"
                }
              ]
            },
            "documentation": null,
            "id": 32786,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "minAnswer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32779,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1539:2:112"
            },
            "returnParameters": {
              "id": 32782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32781,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 32786,
                  "src": "1565:6:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int192",
                    "typeString": "int192"
                  },
                  "typeName": {
                    "id": 32780,
                    "name": "int192",
                    "nodeType": "ElementaryTypeName",
                    "src": "1565:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int192",
                      "typeString": "int192"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1564:8:112"
            },
            "scope": 32809,
            "src": "1521:77:112",
            "stateMutability": "view",
            "superFunction": 4155,
            "visibility": "external"
          },
          {
            "body": {
              "id": 32807,
              "nodeType": "Block",
              "src": "1805:86:112",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 32799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1845:1:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "393632303538383030303030",
                        "id": 32800,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1848:12:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_962058800000_by_1",
                          "typeString": "int_const 962058800000"
                        },
                        "value": "962058800000"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 32801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1862:1:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 32802,
                          "name": "block",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 38097,
                          "src": "1865:5:112",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_block",
                            "typeString": "block"
                          }
                        },
                        "id": 32803,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestamp",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1865:15:112",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 32804,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1882:1:112",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "id": 32805,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "1844:40:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_rational_962058800000_by_1_$_t_rational_0_by_1_$_t_uint256_$_t_rational_0_by_1_$",
                      "typeString": "tuple(int_const 0,int_const 962058800000,int_const 0,uint256,int_const 0)"
                    }
                  },
                  "functionReturnParameters": 32798,
                  "id": 32806,
                  "nodeType": "Return",
                  "src": "1837:47:112"
                }
              ]
            },
            "documentation": null,
            "id": 32808,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "latestRoundData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 32787,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1628:2:112"
            },
            "returnParameters": {
              "id": 32798,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 32789,
                  "name": "roundId",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1675:14:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 32788,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "1675:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32791,
                  "name": "answer",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1699:13:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 32790,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1699:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32793,
                  "name": "startedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1722:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 32792,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1722:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32795,
                  "name": "updatedAt",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1749:17:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 32794,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1749:7:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 32797,
                  "name": "answeredInRound",
                  "nodeType": "VariableDeclaration",
                  "scope": 32808,
                  "src": "1776:22:112",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 32796,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "1776:6:112",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1665:139:112"
            },
            "scope": 32809,
            "src": "1604:287:112",
            "stateMutability": "view",
            "superFunction": 4189,
            "visibility": "external"
          }
        ],
        "scope": 32810,
        "src": "937:956:112"
      }
    ],
    "src": "595:1299:112"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.16+commit.9c3226ce.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.23",
  "updatedAt": "2026-03-02T16:38:29.044Z",
  "devdoc": {
    "details": "Gets the latest price from the Chainlink Oracle Network. Amount of decimals depends on the base.",
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}