{
  "id": "9399ee2359f20c8f98bb7d02c1f093bd",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.6.10",
  "solcLongVersion": "0.6.10+commit.00c0fcaf",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/mocks/external/ChainlinkAggregatorMock.sol": {
        "content": "/*\n    Copyright 2020 Set Labs Inc.\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    SPDX-License-Identifier: Apache License, Version 2.0\n*/\n\npragma solidity 0.6.10;\n\n/**\n * Mock ChainlinkAggregator that can be passed to any contract that consumes these.\n * This contract was implemented for the PerpV2 fixture as a substitute for the smock-ed\n * aggregators they use in their own test suite.\n */\ncontract ChainlinkAggregatorMock {\n    int256 public latestAnswer;\n    uint80 public latestRoundId;\n    uint256 public latestStartedAt;\n    uint256 public latestUpdatedAt;\n    uint80 public latestAnsweredInRound;\n    uint8 public decimals;\n\n    // Perp sets this to `6` in their fixtures...\n    constructor(uint8 _decimals) public {\n        decimals = _decimals;\n    }\n\n    /**\n     * Typical usage for setting the BaseToken oracle to 100 is:\n     *\n     * ```\n     *  await mockAggregator.setLatestAnswer(ethers.utils.parseUnits(\"100\", 6));\n     * ```\n     */\n    function setLatestAnswer(int256 _latestAnswer) public {\n        latestAnswer = _latestAnswer;\n    }\n\n    /**\n     * Typical usage for setting the BaseToken oracle to 100 is:\n     *\n     * ```\n     *  await mockAggregator.setRoundData(0, ethers.utils.parseUnits(\"100\", 6),0,0,0);\n     * ```\n     */\n    function setRoundData(\n        uint80 _roundId,\n        int256 _answer,\n        uint256 _startedAt,\n        uint256 _updatedAt,\n        uint80 _answeredInRound\n    )\n        public\n    {\n        latestRoundId = _roundId;\n        latestAnswer = _answer;\n        latestStartedAt = _startedAt;\n        latestUpdatedAt = _updatedAt;\n        latestAnsweredInRound = _answeredInRound;\n    }\n\n    // Consumed by PerpV2.ChainlinkPriceFeed\n    function getRoundData(uint80 /* _roundId */)\n        public\n        view\n        returns (\n            uint80 roundId,\n            int256 answer,\n            uint256 startedAt,\n            uint256 updatedAt,\n            uint80 answeredInRound\n        )\n    {\n        return (\n            latestRoundId,\n            latestAnswer,\n            latestStartedAt,\n            latestUpdatedAt,\n            latestAnsweredInRound\n        );\n    }\n\n    // Consumed by PerpV2.ChainlinkPriceFeed\n    function latestRoundData()\n        public\n        view\n        returns (\n            uint80 roundId,\n            int256 answer,\n            uint256 startedAt,\n            uint256 updatedAt,\n            uint80 answeredInRound\n        )\n    {\n        return (\n            latestRoundId,\n            latestAnswer,\n            latestStartedAt,\n            latestUpdatedAt,\n            latestAnsweredInRound\n        );\n    }\n}\n\n"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/mocks/external/ChainlinkAggregatorMock.sol": {
        "ChainlinkAggregatorMock": {
          "abi": [
            {
              "inputs": [
                {
                  "internalType": "uint8",
                  "name": "_decimals",
                  "type": "uint8"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "constructor"
            },
            {
              "inputs": [],
              "name": "decimals",
              "outputs": [
                {
                  "internalType": "uint8",
                  "name": "",
                  "type": "uint8"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint80",
                  "name": "",
                  "type": "uint80"
                }
              ],
              "name": "getRoundData",
              "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"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestAnswer",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestAnsweredInRound",
              "outputs": [
                {
                  "internalType": "uint80",
                  "name": "",
                  "type": "uint80"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "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"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestRoundId",
              "outputs": [
                {
                  "internalType": "uint80",
                  "name": "",
                  "type": "uint80"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestStartedAt",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestUpdatedAt",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "int256",
                  "name": "_latestAnswer",
                  "type": "int256"
                }
              ],
              "name": "setLatestAnswer",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "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"
                }
              ],
              "name": "setRoundData",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b5060405161034e38038061034e8339818101604052602081101561003357600080fd5b50516004805460ff9092166a01000000000000000000000260ff60501b199092169190911790556102e5806100696000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806350d25bcd1161006657806350d25bcd14610160578063918e220d146101685780639a6fc8f514610170578063a53322af146101d2578063feaf968c146101da5761009e565b806304ea97b0146100a357806311a8f413146100c25780631c12940a146100e657806330e4574314610128578063313ce56714610142575b600080fd5b6100c0600480360360208110156100b957600080fd5b50356101e2565b005b6100ca6101e7565b604080516001600160501b039092168252519081900360200190f35b6100c0600480360360a08110156100fc57600080fd5b506001600160501b038135811691602081013591604082013591606081013591608090910135166101f6565b610130610236565b60408051918252519081900360200190f35b61014a61023c565b6040805160ff9092168252519081900360200190f35b61013061024c565b610130610252565b6101966004803603602081101561018657600080fd5b50356001600160501b0316610258565b604080516001600160501b0396871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6100ca61027d565b61019661028c565b600055565b6001546001600160501b031681565b600180546001600160501b0396871669ffffffffffffffffffff199182161790915560009490945560029290925560035560048054919093169116179055565b60025481565b600454600160501b900460ff1681565b60005481565b60035481565b6001546000546002546003546004546001600160501b03948516941691939590929450565b6004546001600160501b031681565b6001546000546002546003546004546001600160501b039485169416909192939456fea264697066735822122042283b0c592955df2becede6cf88854de55b67eccf9fd6aa09fc6d19a949e90664736f6c634300060a0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x34E CODESIZE SUB DUP1 PUSH2 0x34E DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x4 DUP1 SLOAD PUSH1 0xFF SWAP1 SWAP3 AND PUSH11 0x100000000000000000000 MUL PUSH1 0xFF PUSH1 0x50 SHL NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x2E5 DUP1 PUSH2 0x69 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x50D25BCD GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0x918E220D EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x9A6FC8F5 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0xA53322AF EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xFEAF968C EQ PUSH2 0x1DA JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x4EA97B0 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x11A8F413 EQ PUSH2 0xC2 JUMPI DUP1 PUSH4 0x1C12940A EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x30E45743 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x142 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x1E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCA PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xC0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x1F6 JUMP JUMPDEST PUSH2 0x130 PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x14A PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x130 PUSH2 0x24C JUMP JUMPDEST PUSH2 0x130 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x196 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB AND PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP5 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP3 AND PUSH1 0x80 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST PUSH2 0xCA PUSH2 0x27D JUMP JUMPDEST PUSH2 0x196 PUSH2 0x28C JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP7 DUP8 AND PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP5 SWAP1 SWAP5 SSTORE PUSH1 0x2 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x3 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x50 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP5 DUP6 AND SWAP5 AND SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP5 DUP6 AND SWAP5 AND SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TIMESTAMP 0x28 EXTCODESIZE 0xC MSIZE 0x29 SSTORE 0xDF 0x2B 0xEC 0xED 0xE6 0xCF DUP9 DUP6 0x4D 0xE5 JUMPDEST PUSH8 0xECCF9FD6AA09FC6D NOT 0xA9 0x49 0xE9 MOD PUSH5 0x736F6C6343 STOP MOD EXP STOP CALLER ",
              "sourceMap": "910:2211:0:-:0;;;1205:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1205:73:0;1251:8;:20;;;;;;;;-1:-1:-1;;;;1251:20:0;;;;;;;;;910:2211;;;;;;"
            },
            "deployedBytecode": {
              "immutableReferences": {},
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806350d25bcd1161006657806350d25bcd14610160578063918e220d146101685780639a6fc8f514610170578063a53322af146101d2578063feaf968c146101da5761009e565b806304ea97b0146100a357806311a8f413146100c25780631c12940a146100e657806330e4574314610128578063313ce56714610142575b600080fd5b6100c0600480360360208110156100b957600080fd5b50356101e2565b005b6100ca6101e7565b604080516001600160501b039092168252519081900360200190f35b6100c0600480360360a08110156100fc57600080fd5b506001600160501b038135811691602081013591604082013591606081013591608090910135166101f6565b610130610236565b60408051918252519081900360200190f35b61014a61023c565b6040805160ff9092168252519081900360200190f35b61013061024c565b610130610252565b6101966004803603602081101561018657600080fd5b50356001600160501b0316610258565b604080516001600160501b0396871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6100ca61027d565b61019661028c565b600055565b6001546001600160501b031681565b600180546001600160501b0396871669ffffffffffffffffffff199182161790915560009490945560029290925560035560048054919093169116179055565b60025481565b600454600160501b900460ff1681565b60005481565b60035481565b6001546000546002546003546004546001600160501b03948516941691939590929450565b6004546001600160501b031681565b6001546000546002546003546004546001600160501b039485169416909192939456fea264697066735822122042283b0c592955df2becede6cf88854de55b67eccf9fd6aa09fc6d19a949e90664736f6c634300060a0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x50D25BCD GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x50D25BCD EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0x918E220D EQ PUSH2 0x168 JUMPI DUP1 PUSH4 0x9A6FC8F5 EQ PUSH2 0x170 JUMPI DUP1 PUSH4 0xA53322AF EQ PUSH2 0x1D2 JUMPI DUP1 PUSH4 0xFEAF968C EQ PUSH2 0x1DA JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x4EA97B0 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x11A8F413 EQ PUSH2 0xC2 JUMPI DUP1 PUSH4 0x1C12940A EQ PUSH2 0xE6 JUMPI DUP1 PUSH4 0x30E45743 EQ PUSH2 0x128 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x142 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x1E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xCA PUSH2 0x1E7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0xC0 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0xA0 DUP2 LT ISZERO PUSH2 0xFC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB DUP2 CALLDATALOAD DUP2 AND SWAP2 PUSH1 0x20 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x40 DUP3 ADD CALLDATALOAD SWAP2 PUSH1 0x60 DUP2 ADD CALLDATALOAD SWAP2 PUSH1 0x80 SWAP1 SWAP2 ADD CALLDATALOAD AND PUSH2 0x1F6 JUMP JUMPDEST PUSH2 0x130 PUSH2 0x236 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x14A PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH2 0x130 PUSH2 0x24C JUMP JUMPDEST PUSH2 0x130 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x196 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x186 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB AND PUSH2 0x258 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP7 DUP8 AND DUP2 MSTORE PUSH1 0x20 DUP2 ADD SWAP6 SWAP1 SWAP6 MSTORE DUP5 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x60 DUP5 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 SWAP3 AND PUSH1 0x80 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0xA0 ADD SWAP1 RETURN JUMPDEST PUSH2 0xCA PUSH2 0x27D JUMP JUMPDEST PUSH2 0x196 PUSH2 0x28C JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP7 DUP8 AND PUSH10 0xFFFFFFFFFFFFFFFFFFFF NOT SWAP2 DUP3 AND OR SWAP1 SWAP2 SSTORE PUSH1 0x0 SWAP5 SWAP1 SWAP5 SSTORE PUSH1 0x2 SWAP3 SWAP1 SWAP3 SSTORE PUSH1 0x3 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP2 SWAP1 SWAP4 AND SWAP2 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x2 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x50 SHL SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP5 DUP6 AND SWAP5 AND SWAP2 SWAP4 SWAP6 SWAP1 SWAP3 SWAP5 POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH1 0x2 SLOAD PUSH1 0x3 SLOAD PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x50 SHL SUB SWAP5 DUP6 AND SWAP5 AND SWAP1 SWAP2 SWAP3 SWAP4 SWAP5 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 TIMESTAMP 0x28 EXTCODESIZE 0xC MSIZE 0x29 SSTORE 0xDF 0x2B 0xEC 0xED 0xE6 0xCF DUP9 DUP6 0x4D 0xE5 JUMPDEST PUSH8 0xECCF9FD6AA09FC6D NOT 0xA9 0x49 0xE9 MOD PUSH5 0x736F6C6343 STOP MOD EXP STOP CALLER ",
              "sourceMap": "910:2211:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1475:99;;;;;;;;;;;;;;;;-1:-1:-1;1475:99:0;;:::i;:::-;;981:27;;;:::i;:::-;;;;-1:-1:-1;;;;;981:27:0;;;;;;;;;;;;;;1777:384;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1777:384:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1014:30::-;;;:::i;:::-;;;;;;;;;;;;;;;;1127:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;949:26;;;:::i;1050:30::-;;;:::i;2212:437::-;;;;;;;;;;;;;;;;-1:-1:-1;2212:437:0;-1:-1:-1;;;;;2212:437:0;;:::i;:::-;;;;-1:-1:-1;;;;;2212:437:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1086:35;;;:::i;2700:419::-;;;:::i;1475:99::-;1539:12;:28;1475:99::o;981:27::-;;;-1:-1:-1;;;;;981:27:0;;:::o;1777:384::-;1972:13;:24;;-1:-1:-1;;;;;1972:24:0;;;-1:-1:-1;;1972:24:0;;;;;;;:13;2006:22;;;;2038:15;:28;;;;2076:15;:28;2114:21;:40;;;;;;;;;;;1777:384::o;1014:30::-;;;;:::o;1127:21::-;;;-1:-1:-1;;;1127:21:0;;;;;:::o;949:26::-;;;;:::o;1050:30::-;;;;:::o;2212:437::-;2500:13;;2315:14;2527:12;2553:15;;2582;;2611:21;;-1:-1:-1;;;;;2500:13:0;;;;2611:21;2212:437;;;;;;;:::o;1086:35::-;;;-1:-1:-1;;;;;1086:35:0;;:::o;2700:419::-;2970:13;;2785:14;2997:12;3023:15;;3052;;3081:21;;-1:-1:-1;;;;;2970:13:0;;;;3081:21;2700:419;;;;;:::o"
            },
            "methodIdentifiers": {
              "decimals()": "313ce567",
              "getRoundData(uint80)": "9a6fc8f5",
              "latestAnswer()": "50d25bcd",
              "latestAnsweredInRound()": "a53322af",
              "latestRoundData()": "feaf968c",
              "latestRoundId()": "11a8f413",
              "latestStartedAt()": "30e45743",
              "latestUpdatedAt()": "918e220d",
              "setLatestAnswer(int256)": "04ea97b0",
              "setRoundData(uint80,int256,uint256,uint256,uint80)": "1c12940a"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/mocks/external/ChainlinkAggregatorMock.sol": {
        "ast": {
          "absolutePath": "contracts/mocks/external/ChainlinkAggregatorMock.sol",
          "exportedSymbols": {
            "ChainlinkAggregatorMock": [
              115
            ]
          },
          "id": 116,
          "license": "Apache License",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                "0.6",
                ".10"
              ],
              "nodeType": "PragmaDirective",
              "src": "655:23:0"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "contractDependencies": [],
              "contractKind": "contract",
              "documentation": {
                "id": 2,
                "nodeType": "StructuredDocumentation",
                "src": "680:229:0",
                "text": " Mock ChainlinkAggregator that can be passed to any contract that consumes these.\n This contract was implemented for the PerpV2 fixture as a substitute for the smock-ed\n aggregators they use in their own test suite."
              },
              "fullyImplemented": true,
              "id": 115,
              "linearizedBaseContracts": [
                115
              ],
              "name": "ChainlinkAggregatorMock",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "constant": false,
                  "functionSelector": "50d25bcd",
                  "id": 4,
                  "mutability": "mutable",
                  "name": "latestAnswer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 115,
                  "src": "949:26:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 3,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "949:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "constant": false,
                  "functionSelector": "11a8f413",
                  "id": 6,
                  "mutability": "mutable",
                  "name": "latestRoundId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 115,
                  "src": "981:27:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 5,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "constant": false,
                  "functionSelector": "30e45743",
                  "id": 8,
                  "mutability": "mutable",
                  "name": "latestStartedAt",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 115,
                  "src": "1014:30:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1014:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "constant": false,
                  "functionSelector": "918e220d",
                  "id": 10,
                  "mutability": "mutable",
                  "name": "latestUpdatedAt",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 115,
                  "src": "1050:30:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1050:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "constant": false,
                  "functionSelector": "a53322af",
                  "id": 12,
                  "mutability": "mutable",
                  "name": "latestAnsweredInRound",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 115,
                  "src": "1086:35:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint80",
                    "typeString": "uint80"
                  },
                  "typeName": {
                    "id": 11,
                    "name": "uint80",
                    "nodeType": "ElementaryTypeName",
                    "src": "1086:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint80",
                      "typeString": "uint80"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "constant": false,
                  "functionSelector": "313ce567",
                  "id": 14,
                  "mutability": "mutable",
                  "name": "decimals",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 115,
                  "src": "1127:21:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 13,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1127:5:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 23,
                    "nodeType": "Block",
                    "src": "1241:37:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 21,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 19,
                            "name": "decimals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 14,
                            "src": "1251:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 20,
                            "name": "_decimals",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16,
                            "src": "1262:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "1251:20:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 22,
                        "nodeType": "ExpressionStatement",
                        "src": "1251:20:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "id": 24,
                  "implemented": true,
                  "kind": "constructor",
                  "modifiers": [],
                  "name": "",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 17,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 16,
                        "mutability": "mutable",
                        "name": "_decimals",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 24,
                        "src": "1217:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 15,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1217:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1216:17:0"
                  },
                  "returnParameters": {
                    "id": 18,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1241:0:0"
                  },
                  "scope": 115,
                  "src": "1205:73:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 34,
                    "nodeType": "Block",
                    "src": "1529:45:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 32,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 30,
                            "name": "latestAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4,
                            "src": "1539:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 31,
                            "name": "_latestAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 27,
                            "src": "1554:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "1539:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 33,
                        "nodeType": "ExpressionStatement",
                        "src": "1539:28:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 25,
                    "nodeType": "StructuredDocumentation",
                    "src": "1284:186:0",
                    "text": " Typical usage for setting the BaseToken oracle to 100 is:\n ```\n  await mockAggregator.setLatestAnswer(ethers.utils.parseUnits(\"100\", 6));\n ```"
                  },
                  "functionSelector": "04ea97b0",
                  "id": 35,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setLatestAnswer",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 28,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 27,
                        "mutability": "mutable",
                        "name": "_latestAnswer",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 35,
                        "src": "1500:20:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 26,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1500:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1499:22:0"
                  },
                  "returnParameters": {
                    "id": 29,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1529:0:0"
                  },
                  "scope": 115,
                  "src": "1475:99:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 69,
                    "nodeType": "Block",
                    "src": "1962:199:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 51,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 49,
                            "name": "latestRoundId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6,
                            "src": "1972:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint80",
                              "typeString": "uint80"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 50,
                            "name": "_roundId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 38,
                            "src": "1988:8:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint80",
                              "typeString": "uint80"
                            }
                          },
                          "src": "1972:24:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "id": 52,
                        "nodeType": "ExpressionStatement",
                        "src": "1972:24:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 55,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 53,
                            "name": "latestAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4,
                            "src": "2006:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 54,
                            "name": "_answer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 40,
                            "src": "2021:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "2006:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 56,
                        "nodeType": "ExpressionStatement",
                        "src": "2006:22:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 59,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 57,
                            "name": "latestStartedAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8,
                            "src": "2038:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 58,
                            "name": "_startedAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 42,
                            "src": "2056:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2038:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 60,
                        "nodeType": "ExpressionStatement",
                        "src": "2038:28:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 63,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 61,
                            "name": "latestUpdatedAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10,
                            "src": "2076:15:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 62,
                            "name": "_updatedAt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44,
                            "src": "2094:10:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2076:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 64,
                        "nodeType": "ExpressionStatement",
                        "src": "2076:28:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 67,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 65,
                            "name": "latestAnsweredInRound",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12,
                            "src": "2114:21:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint80",
                              "typeString": "uint80"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 66,
                            "name": "_answeredInRound",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46,
                            "src": "2138:16:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint80",
                              "typeString": "uint80"
                            }
                          },
                          "src": "2114:40:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "id": 68,
                        "nodeType": "ExpressionStatement",
                        "src": "2114:40:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 36,
                    "nodeType": "StructuredDocumentation",
                    "src": "1580:192:0",
                    "text": " Typical usage for setting the BaseToken oracle to 100 is:\n ```\n  await mockAggregator.setRoundData(0, ethers.utils.parseUnits(\"100\", 6),0,0,0);\n ```"
                  },
                  "functionSelector": "1c12940a",
                  "id": 70,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "setRoundData",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 47,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 38,
                        "mutability": "mutable",
                        "name": "_roundId",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 70,
                        "src": "1808:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 37,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "1808:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 40,
                        "mutability": "mutable",
                        "name": "_answer",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 70,
                        "src": "1833:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 39,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1833:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 42,
                        "mutability": "mutable",
                        "name": "_startedAt",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 70,
                        "src": "1857:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 41,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1857:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 44,
                        "mutability": "mutable",
                        "name": "_updatedAt",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 70,
                        "src": "1885:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 43,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1885:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 46,
                        "mutability": "mutable",
                        "name": "_answeredInRound",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 70,
                        "src": "1913:23:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 45,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "1913:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1798:144:0"
                  },
                  "returnParameters": {
                    "id": 48,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1962:0:0"
                  },
                  "scope": 115,
                  "src": "1777:384:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 92,
                    "nodeType": "Block",
                    "src": "2469:180:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 85,
                              "name": "latestRoundId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6,
                              "src": "2500:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint80",
                                "typeString": "uint80"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 86,
                              "name": "latestAnswer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4,
                              "src": "2527:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 87,
                              "name": "latestStartedAt",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8,
                              "src": "2553:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 88,
                              "name": "latestUpdatedAt",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10,
                              "src": "2582:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 89,
                              "name": "latestAnsweredInRound",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12,
                              "src": "2611:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint80",
                                "typeString": "uint80"
                              }
                            }
                          ],
                          "id": 90,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2486:156:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
                            "typeString": "tuple(uint80,int256,uint256,uint256,uint80)"
                          }
                        },
                        "functionReturnParameters": 84,
                        "id": 91,
                        "nodeType": "Return",
                        "src": "2479:163:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "functionSelector": "9a6fc8f5",
                  "id": 93,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getRoundData",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 73,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 72,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 93,
                        "src": "2234:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 71,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "2234:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2233:23:0"
                  },
                  "returnParameters": {
                    "id": 84,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 75,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 93,
                        "src": "2315:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 74,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "2315:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 77,
                        "mutability": "mutable",
                        "name": "answer",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 93,
                        "src": "2343:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 76,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2343:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 79,
                        "mutability": "mutable",
                        "name": "startedAt",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 93,
                        "src": "2370:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 78,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2370:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 81,
                        "mutability": "mutable",
                        "name": "updatedAt",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 93,
                        "src": "2401:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 80,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2401:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 83,
                        "mutability": "mutable",
                        "name": "answeredInRound",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 93,
                        "src": "2432:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 82,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "2432:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2301:163:0"
                  },
                  "scope": 115,
                  "src": "2212:437:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 113,
                    "nodeType": "Block",
                    "src": "2939:180:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 106,
                              "name": "latestRoundId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6,
                              "src": "2970:13:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint80",
                                "typeString": "uint80"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 107,
                              "name": "latestAnswer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4,
                              "src": "2997:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 108,
                              "name": "latestStartedAt",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8,
                              "src": "3023:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 109,
                              "name": "latestUpdatedAt",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10,
                              "src": "3052:15:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 110,
                              "name": "latestAnsweredInRound",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12,
                              "src": "3081:21:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint80",
                                "typeString": "uint80"
                              }
                            }
                          ],
                          "id": 111,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2956:156:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_uint80_$_t_int256_$_t_uint256_$_t_uint256_$_t_uint80_$",
                            "typeString": "tuple(uint80,int256,uint256,uint256,uint80)"
                          }
                        },
                        "functionReturnParameters": 105,
                        "id": 112,
                        "nodeType": "Return",
                        "src": "2949:163:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "functionSelector": "feaf968c",
                  "id": 114,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "latestRoundData",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 94,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "2724:2:0"
                  },
                  "returnParameters": {
                    "id": 105,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 96,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 114,
                        "src": "2785:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 95,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "2785:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 98,
                        "mutability": "mutable",
                        "name": "answer",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 114,
                        "src": "2813:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 97,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2813:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 100,
                        "mutability": "mutable",
                        "name": "startedAt",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 114,
                        "src": "2840:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 99,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2840:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 102,
                        "mutability": "mutable",
                        "name": "updatedAt",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 114,
                        "src": "2871:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 101,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2871:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 104,
                        "mutability": "mutable",
                        "name": "answeredInRound",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 114,
                        "src": "2902:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint80",
                          "typeString": "uint80"
                        },
                        "typeName": {
                          "id": 103,
                          "name": "uint80",
                          "nodeType": "ElementaryTypeName",
                          "src": "2902:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint80",
                            "typeString": "uint80"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2771:163:0"
                  },
                  "scope": 115,
                  "src": "2700:419:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "public"
                }
              ],
              "scope": 116,
              "src": "910:2211:0"
            }
          ],
          "src": "655:2468:0"
        },
        "id": 0
      }
    }
  }
}
