{
  "id": "5eb08c031fabb4601261a72ebbed10d3",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.6.10",
  "solcLongVersion": "0.6.10+commit.00c0fcaf",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/mocks/OracleMock.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\ncontract OracleMock {\n    uint256 public price;\n\n    constructor(uint256 _startingPrice) public {\n        price = _startingPrice;\n    }\n\n    /* ============ External Functions ============ */\n    function updatePrice(uint256 _newPrice) external {\n        price = _newPrice;\n    }\n\n    /**\n     * Returns the queried data from an oracle returning uint256\n     *\n     * @return  Current price of asset represented in uint256\n     */\n    function read() external view returns (uint256) {\n        return price;\n    }\n}"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/mocks/OracleMock.sol": {
        "OracleMock": {
          "abi": [
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "_startingPrice",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "constructor"
            },
            {
              "inputs": [],
              "name": "price",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "read",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "_newPrice",
                  "type": "uint256"
                }
              ],
              "name": "updatePrice",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b506040516101083803806101088339818101604052602081101561003357600080fd5b505160005560c2806100466000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c806357de26a41460415780638d6cc56d146059578063a035b1fe146075575b600080fd5b6047607b565b60408051918252519081900360200190f35b607360048036036020811015606d57600080fd5b50356081565b005b60476086565b60005490565b600055565b6000548156fea2646970667358221220bfc6bdb48969ea665170cf7a12bba567cfecc36599083c147738f4e97c69e89564736f6c634300060a0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x108 CODESIZE SUB DUP1 PUSH2 0x108 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 SSTORE PUSH1 0xC2 DUP1 PUSH2 0x46 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 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57DE26A4 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x8D6CC56D EQ PUSH1 0x59 JUMPI DUP1 PUSH4 0xA035B1FE EQ PUSH1 0x75 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x81 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x47 PUSH1 0x86 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF 0xC6 0xBD 0xB4 DUP10 PUSH10 0xEA665170CF7A12BBA567 0xCF 0xEC 0xC3 PUSH6 0x99083C147738 DELEGATECALL 0xE9 PUSH29 0x69E89564736F6C634300060A0033000000000000000000000000000000 ",
              "sourceMap": "680:514:0:-:0;;;733:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;733:82:0;786:5;:22;680:514;;;;;;"
            },
            "deployedBytecode": {
              "immutableReferences": {},
              "linkReferences": {},
              "object": "6080604052348015600f57600080fd5b5060043610603c5760003560e01c806357de26a41460415780638d6cc56d146059578063a035b1fe146075575b600080fd5b6047607b565b60408051918252519081900360200190f35b607360048036036020811015606d57600080fd5b50356081565b005b60476086565b60005490565b600055565b6000548156fea2646970667358221220bfc6bdb48969ea665170cf7a12bba567cfecc36599083c147738f4e97c69e89564736f6c634300060a0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x57DE26A4 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x8D6CC56D EQ PUSH1 0x59 JUMPI DUP1 PUSH4 0xA035B1FE EQ PUSH1 0x75 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x7B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST PUSH1 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x6D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x81 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x47 PUSH1 0x86 JUMP JUMPDEST PUSH1 0x0 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF 0xC6 0xBD 0xB4 DUP10 PUSH10 0xEA665170CF7A12BBA567 0xCF 0xEC 0xC3 PUSH6 0x99083C147738 DELEGATECALL 0xE9 PUSH29 0x69E89564736F6C634300060A0033000000000000000000000000000000 ",
              "sourceMap": "680:514:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1115:77;;;:::i;:::-;;;;;;;;;;;;;;;;876:83;;;;;;;;;;;;;;;;-1:-1:-1;876:83:0;;:::i;:::-;;706:20;;;:::i;1115:77::-;1154:7;1180:5;1115:77;:::o;876:83::-;935:5;:17;876:83::o;706:20::-;;;;:::o"
            },
            "methodIdentifiers": {
              "price()": "a035b1fe",
              "read()": "57de26a4",
              "updatePrice(uint256)": "8d6cc56d"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/mocks/OracleMock.sol": {
        "ast": {
          "absolutePath": "contracts/mocks/OracleMock.sol",
          "exportedSymbols": {
            "OracleMock": [
              33
            ]
          },
          "id": 34,
          "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": null,
              "fullyImplemented": true,
              "id": 33,
              "linearizedBaseContracts": [
                33
              ],
              "name": "OracleMock",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "constant": false,
                  "functionSelector": "a035b1fe",
                  "id": 3,
                  "mutability": "mutable",
                  "name": "price",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 33,
                  "src": "706:20:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:7:0",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 12,
                    "nodeType": "Block",
                    "src": "776:39:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8,
                            "name": "price",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3,
                            "src": "786:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 9,
                            "name": "_startingPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5,
                            "src": "794:14:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "786:22:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 11,
                        "nodeType": "ExpressionStatement",
                        "src": "786:22:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "id": 13,
                  "implemented": true,
                  "kind": "constructor",
                  "modifiers": [],
                  "name": "",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 6,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 5,
                        "mutability": "mutable",
                        "name": "_startingPrice",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 13,
                        "src": "745:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 4,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "745:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "744:24:0"
                  },
                  "returnParameters": {
                    "id": 7,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "776:0:0"
                  },
                  "scope": 33,
                  "src": "733:82:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 22,
                    "nodeType": "Block",
                    "src": "925:34:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 20,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 18,
                            "name": "price",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3,
                            "src": "935:5:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 19,
                            "name": "_newPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 15,
                            "src": "943:9:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "935:17:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 21,
                        "nodeType": "ExpressionStatement",
                        "src": "935:17:0"
                      }
                    ]
                  },
                  "documentation": null,
                  "functionSelector": "8d6cc56d",
                  "id": 23,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "updatePrice",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 16,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 15,
                        "mutability": "mutable",
                        "name": "_newPrice",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 23,
                        "src": "897:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 14,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "897:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "896:19:0"
                  },
                  "returnParameters": {
                    "id": 17,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "925:0:0"
                  },
                  "scope": 33,
                  "src": "876:83:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": {
                    "id": 31,
                    "nodeType": "Block",
                    "src": "1163:29:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 29,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3,
                          "src": "1180:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "functionReturnParameters": 28,
                        "id": 30,
                        "nodeType": "Return",
                        "src": "1173:12:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 24,
                    "nodeType": "StructuredDocumentation",
                    "src": "965:145:0",
                    "text": " Returns the queried data from an oracle returning uint256\n @return  Current price of asset represented in uint256"
                  },
                  "functionSelector": "57de26a4",
                  "id": 32,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "read",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 25,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1128:2:0"
                  },
                  "returnParameters": {
                    "id": 28,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 27,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 32,
                        "src": "1154:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 26,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1154:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1153:9:0"
                  },
                  "scope": 33,
                  "src": "1115:77:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 34,
              "src": "680:514:0"
            }
          ],
          "src": "655:539:0"
        },
        "id": 0
      }
    }
  }
}
