{
  "id": "48b9ee4bbe21adba589e1f2725f60a32",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.6.12",
  "solcLongVersion": "0.6.12+commit.27d51765",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/mocks/oracle/GenericOracleI.sol": {
        "content": "// SPDX-License-Identifier: agpl-3.0\npragma solidity 0.6.12;\n\ninterface GenericOracleI {\n  // ganache\n  event AssetPriceUpdated(address _asset, uint256 _price, uint256 timestamp);\n  event EthPriceUpdated(uint256 _price, uint256 timestamp);\n\n  // kovan\n  event ProphecySubmitted(\n    address indexed _sybil,\n    address indexed _asset,\n    uint96 _sybilProphecy,\n    uint96 _oracleProphecy\n  );\n\n  function getAssetPrice(address _asset) external view returns (uint256);\n\n  function getEthUsdPrice() external view returns (uint256);\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/GenericOracleI.sol": {
        "GenericOracleI": {
          "abi": [
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "address",
                  "name": "_asset",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "_price",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "timestamp",
                  "type": "uint256"
                }
              ],
              "name": "AssetPriceUpdated",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "_price",
                  "type": "uint256"
                },
                {
                  "indexed": false,
                  "internalType": "uint256",
                  "name": "timestamp",
                  "type": "uint256"
                }
              ],
              "name": "EthPriceUpdated",
              "type": "event"
            },
            {
              "anonymous": false,
              "inputs": [
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "_sybil",
                  "type": "address"
                },
                {
                  "indexed": true,
                  "internalType": "address",
                  "name": "_asset",
                  "type": "address"
                },
                {
                  "indexed": false,
                  "internalType": "uint96",
                  "name": "_sybilProphecy",
                  "type": "uint96"
                },
                {
                  "indexed": false,
                  "internalType": "uint96",
                  "name": "_oracleProphecy",
                  "type": "uint96"
                }
              ],
              "name": "ProphecySubmitted",
              "type": "event"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "_asset",
                  "type": "address"
                }
              ],
              "name": "getAssetPrice",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "getEthUsdPrice",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "getAssetPrice(address)": "b3596f07",
              "getEthUsdPrice()": "a0a8045e"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/mocks/oracle/GenericOracleI.sol": {
        "ast": {
          "absolutePath": "contracts/mocks/oracle/GenericOracleI.sol",
          "exportedSymbols": {
            "GenericOracleI": [
              38
            ]
          },
          "id": 39,
          "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": "interface",
              "documentation": null,
              "fullyImplemented": false,
              "id": 38,
              "linearizedBaseContracts": [
                38
              ],
              "name": "GenericOracleI",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "anonymous": false,
                  "documentation": null,
                  "id": 9,
                  "name": "AssetPriceUpdated",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 8,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 3,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "_asset",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 9,
                        "src": "128:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 2,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "128:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 5,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "_price",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 9,
                        "src": "144:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "144:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 7,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "timestamp",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 9,
                        "src": "160:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "160:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "127:51:0"
                  },
                  "src": "104:75:0"
                },
                {
                  "anonymous": false,
                  "documentation": null,
                  "id": 15,
                  "name": "EthPriceUpdated",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 14,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 11,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "_price",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 15,
                        "src": "204:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "204:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 13,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "timestamp",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 15,
                        "src": "220:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 12,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "220:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "203:35:0"
                  },
                  "src": "182:57:0"
                },
                {
                  "anonymous": false,
                  "documentation": null,
                  "id": 25,
                  "name": "ProphecySubmitted",
                  "nodeType": "EventDefinition",
                  "parameters": {
                    "id": 24,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 17,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "_sybil",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 25,
                        "src": "283:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 16,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "283:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 19,
                        "indexed": true,
                        "mutability": "mutable",
                        "name": "_asset",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 25,
                        "src": "311:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 18,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "311:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 21,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "_sybilProphecy",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 25,
                        "src": "339:21:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "typeName": {
                          "id": 20,
                          "name": "uint96",
                          "nodeType": "ElementaryTypeName",
                          "src": "339:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 23,
                        "indexed": false,
                        "mutability": "mutable",
                        "name": "_oracleProphecy",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 25,
                        "src": "366:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint96",
                          "typeString": "uint96"
                        },
                        "typeName": {
                          "id": 22,
                          "name": "uint96",
                          "nodeType": "ElementaryTypeName",
                          "src": "366:6:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint96",
                            "typeString": "uint96"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "277:115:0"
                  },
                  "src": "254:139:0"
                },
                {
                  "body": null,
                  "documentation": null,
                  "functionSelector": "b3596f07",
                  "id": 32,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAssetPrice",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 28,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 27,
                        "mutability": "mutable",
                        "name": "_asset",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 32,
                        "src": "420:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 26,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "420:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "419:16:0"
                  },
                  "returnParameters": {
                    "id": 31,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 30,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 32,
                        "src": "459:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 29,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "459:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "458:9:0"
                  },
                  "scope": 38,
                  "src": "397:71:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": null,
                  "documentation": null,
                  "functionSelector": "a0a8045e",
                  "id": 37,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getEthUsdPrice",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 33,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "495:2:0"
                  },
                  "returnParameters": {
                    "id": 36,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 35,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 37,
                        "src": "521:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 34,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "521:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "520:9:0"
                  },
                  "scope": 38,
                  "src": "472:58:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 39,
              "src": "62:470:0"
            }
          ],
          "src": "37:496:0"
        },
        "id": 0
      }
    }
  }
}
