{
  "id": "1230e0daf73eb214b97e8e6faf55088b",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.6.12",
  "solcLongVersion": "0.6.12+commit.27d51765",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/mocks/oracle/CLAggregators/MockAggregator.sol": {
        "content": "// SPDX-License-Identifier: agpl-3.0\npragma solidity 0.6.12;\n\ncontract MockAggregator {\n  int256 private _latestAnswer;\n\n  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp);\n\n  constructor(int256 _initialAnswer) public {\n    _latestAnswer = _initialAnswer;\n    emit AnswerUpdated(_initialAnswer, 0, now);\n  }\n\n  function latestAnswer() external view returns (int256) {\n    return _latestAnswer;\n  }\n\n  function getTokenType() external view returns (uint256) {\n    return 1;\n  }\n\n  // function getSubTokens() external view returns (address[] memory) {\n  // TODO: implement mock for when multiple subtokens. Maybe we need to create diff mock contract\n  // to call it from the migration for this case??\n  // }\n}\n"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200,
        "details": {
          "yul": true,
          "yulDetails": {
            "stackAllocation": true
          }
        }
      },
      "evmVersion": "istanbul",
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/mocks/oracle/CLAggregators/MockAggregator.sol": {
        "MockAggregator": {
          "abi": [
            {
              "inputs": [
                {
                  "internalType": "int256",
                  "name": "_initialAnswer",
                  "type": "int256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "constructor"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "int256",
                  "name": "current",
                  "type": "int256"
                },
                {
                  "indexed": true,
                  "internalType": "uint256",
                  "name": "roundId",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "timestamp",
                  "type": "uint256"
                }
              ],
              "name": "AnswerUpdated",
              "type": "event"
            },
            {
              "inputs": [],
              "name": "getTokenType",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "latestAnswer",
              "outputs": [
                {
                  "internalType": "int256",
                  "name": "",
                  "type": "int256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b506040516101153803806101158339818101604052602081101561003357600080fd5b5051600081815560408051428152905183917f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f919081900360200190a35060968061007f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806350d25bcd146037578063fcab181914604f575b600080fd5b603d6055565b60408051918252519081900360200190f35b603d605b565b60005490565b60019056fea2646970667358221220922d25506926536ff0bf113d3b739683a1d3964e7197056d62de2ace11dc9d6c64736f6c634300060c0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x115 CODESIZE SUB DUP1 PUSH2 0x115 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x0 DUP2 DUP2 SSTORE PUSH1 0x40 DUP1 MLOAD TIMESTAMP DUP2 MSTORE SWAP1 MLOAD DUP4 SWAP2 PUSH32 0x559884FD3A460DB3073B7FC896CC77986F16E378210DED43186175BF646FC5F SWAP2 SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 LOG3 POP PUSH1 0x96 DUP1 PUSH2 0x7F PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x50D25BCD EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xFCAB1819 EQ PUSH1 0x4F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3D PUSH1 0x55 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x3D PUSH1 0x5B JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0x2D 0x25 POP PUSH10 0x26536FF0BF113D3B7396 DUP4 LOG1 0xD3 SWAP7 0x4E PUSH18 0x97056D62DE2ACE11DC9D6C64736F6C634300 MOD 0xC STOP CALLER ",
              "sourceMap": "62:684:0:-:0;;;215:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;215:131:0;263:13;:30;;;304:37;;;337:3;304:37;;;;215:131;;304:37;;;;;;215:131;304:37;;;215:131;62:684;;;;;;"
            },
            "deployedBytecode": {
              "immutableReferences": {},
              "linkReferences": {},
              "object": "6080604052348015600f57600080fd5b506004361060325760003560e01c806350d25bcd146037578063fcab181914604f575b600080fd5b603d6055565b60408051918252519081900360200190f35b603d605b565b60005490565b60019056fea2646970667358221220922d25506926536ff0bf113d3b739683a1d3964e7197056d62de2ace11dc9d6c64736f6c634300060c0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x50D25BCD EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xFCAB1819 EQ PUSH1 0x4F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3D PUSH1 0x55 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x3D PUSH1 0x5B JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0x2D 0x25 POP PUSH10 0x26536FF0BF113D3B7396 DUP4 LOG1 0xD3 SWAP7 0x4E PUSH18 0x97056D62DE2ACE11DC9D6C64736F6C634300 MOD 0xC STOP CALLER ",
              "sourceMap": "62:684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:86;;;:::i;:::-;;;;;;;;;;;;;;;;440:75;;;:::i;350:86::-;397:6;418:13;350:86;:::o;440:75::-;509:1;440:75;:::o"
            },
            "methodIdentifiers": {
              "getTokenType()": "fcab1819",
              "latestAnswer()": "50d25bcd"
            }
          }
        }
      }
    },
    "errors": [
      {
        "component": "general",
        "errorCode": "2018",
        "formattedMessage": "contracts/mocks/oracle/CLAggregators/MockAggregator.sol:18:3: Warning: Function state mutability can be restricted to pure\n  function getTokenType() external view returns (uint256) {\n  ^ (Relevant source part starts here and spans across multiple lines).\n",
        "message": "Function state mutability can be restricted to pure",
        "severity": "warning",
        "sourceLocation": {
          "end": 515,
          "file": "contracts/mocks/oracle/CLAggregators/MockAggregator.sol",
          "start": 440
        },
        "type": "Warning"
      }
    ],
    "sources": {
      "contracts/mocks/oracle/CLAggregators/MockAggregator.sol": {
        "ast": {
          "absolutePath": "contracts/mocks/oracle/CLAggregators/MockAggregator.sol",
          "exportedSymbols": {
            "MockAggregator": [
              44
            ]
          },
          "id": 45,
          "license": "agpl-3.0",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                "0.6",
                ".12"
              ],
              "nodeType": "PragmaDirective",
              "src": "37:23:0"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "contractDependencies": [],
              "contractKind": "contract",
              "documentation": null,
              "fullyImplemented": true,
              "id": 44,
              "linearizedBaseContracts": [
                44
              ],
              "name": "MockAggregator",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "constant": false,
                  "id": 3,
                  "mutability": "mutable",
                  "name": "_latestAnswer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 44,
                  "src": "90:28:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 2,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "90:6:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "private"
                },
                {
                  "anonymous": false,
                  "documentation": null,
                  "id": 11,
                  "name": "AnswerUpdated",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 10,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 5,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "current",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 11,
                        "src": "143:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 4,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "143:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 7,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "roundId",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 11,
                        "src": "167:23:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "167:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 9,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "timestamp",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 11,
                        "src": "192:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "192:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "142:68:0"
                  },
                  "src": "123:88:0"
                },
                {
                  "body": {
                    "id": 26,
                    "nodeType": "Block",
                    "src": "257:89:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 18,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 16,
                            "name": "_latestAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3,
                            "src": "263:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 17,
                            "name": "_initialAnswer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13,
                            "src": "279:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "263:30:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 19,
                        "nodeType": "ExpressionStatement",
                        "src": "263:30:0"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 21,
                              "name": "_initialAnswer",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13,
                              "src": "318:14:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 22,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "334:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "id": 23,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -17,
                              "src": "337:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 20,
                            "name": "AnswerUpdated",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 11,
                            "src": "304:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_int256_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (int256,uint256,uint256)"
                            }
                          },
                          "id": 24,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "304:37:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25,
                        "nodeType": "EmitStatement",
                        "src": "299:42:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "id": 27,
                  "implemented": true,
                  "kind": "constructor",
                  "modifiers": [],
                  "name": "",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 14,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 13,
                        "mutability": "mutable",
                        "name": "_initialAnswer",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 27,
                        "src": "227:21:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 12,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "227:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "226:23:0"
                  },
                  "returnParameters": {
                    "id": 15,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "257:0:0"
                  },
                  "scope": 44,
                  "src": "215:131:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 34,
                    "nodeType": "Block",
                    "src": "405:31:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 32,
                          "name": "_latestAnswer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3,
                          "src": "418:13:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 31,
                        "id": 33,
                        "nodeType": "Return",
                        "src": "411:20:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "functionSelector": "50d25bcd",
                  "id": 35,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "latestAnswer",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 28,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "371:2:0"
                  },
                  "returnParameters": {
                    "id": 31,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 30,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 35,
                        "src": "397:6:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 29,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "397:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "396:8:0"
                  },
                  "scope": 44,
                  "src": "350:86:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": {
                    "id": 42,
                    "nodeType": "Block",
                    "src": "496:19:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 40,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "509:1:0",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "functionReturnParameters": 39,
                        "id": 41,
                        "nodeType": "Return",
                        "src": "502:8:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "functionSelector": "fcab1819",
                  "id": 43,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getTokenType",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 36,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "461:2:0"
                  },
                  "returnParameters": {
                    "id": 39,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 38,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 43,
                        "src": "487:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 37,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "487:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "486:9:0"
                  },
                  "scope": 44,
                  "src": "440:75:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 45,
              "src": "62:684:0"
            }
          ],
          "src": "37:710:0"
        },
        "id": 0
      }
    }
  }
}
