{
    "_format": "hh-sol-artifact-1",
    "contractName": "PriceOracle",
    "sourceName": "contracts/PriceOracle.sol",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "name",
                    "type": "string"
                },
                {
                    "indexed": false,
                    "internalType": "bytes",
                    "name": "value",
                    "type": "bytes"
                }
            ],
            "name": "Parameter",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "assetFrom",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "assetTo",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "previousPrice",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "newPrice",
                    "type": "uint256"
                }
            ],
            "name": "PricePosted",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "blockLimit",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "controller",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "fromToken",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "toToken",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "convertPrice",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "enlargementFactor",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "assetFrom",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "assetTo",
                    "type": "address"
                }
            ],
            "name": "getAssetPrice",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_sizeLimit",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_blockLimit",
                    "type": "uint256"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "latestPriceBlock",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "prices",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "assetFrom",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "assetTo",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "assetFromAmount",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "assetToAmount",
                    "type": "uint256"
                }
            ],
            "name": "setAssetPrice",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_controller",
                    "type": "address"
                }
            ],
            "name": "setController",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_sizeLimit",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "_blockLimit",
                    "type": "uint256"
                }
            ],
            "name": "setLimit",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "sizeLimit",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b50610b98806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063eb54804811610066578063eb548048146101e1578063f2fde38b146101f4578063f3bcd23714610207578063f77c47911461021057600080fd5b80638da5cb5b1461018d57806392eefe9b146101b25780639cda4e54146101c5578063e4a30116146101ce57600080fd5b80634bb846e1116100d35780634bb846e1146101565780635c5cf01a146101695780635db9cdb91461017c578063715018a61461018557600080fd5b80631f312404146100fa578063207add9114610138578063210fd2711461014d575b600080fd5b6101256101083660046108cf565b606560209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61014b610146366004610902565b610223565b005b61012560665481565b610125610164366004610924565b6102bd565b61014b610177366004610960565b610310565b61012560685481565b61014b6104f1565b6033546001600160a01b03165b6040516001600160a01b03909116815260200161012f565b61014b6101c03660046109a2565b610505565b61012560695481565b61014b6101dc366004610902565b61052f565b6101256101ef3660046108cf565b6106d7565b61014b6102023660046109a2565b610734565b61012560675481565b606a5461019a906001600160a01b031681565b61022b6107ad565b606682905560678190556040805160208101849052600080516020610b43833981519152910160408051601f198184030181529082905261026b91610a0a565b60405180910390a1600080516020610b4383398151915260675460405160200161029791815260200190565b60408051601f19818403018152908290526102b191610a3d565b60405180910390a15050565b6000826001600160a01b0316846001600160a01b0316036102df575080610309565b60006102eb85856106d7565b6069549091506102fb8285610a87565b6103059190610aa6565b9150505b9392505050565b6001600160a01b038085166000908152606560209081526040808320938716835292905290812054606954909190849061034a9085610a87565b6103549190610aa6565b606a549091506001600160a01b03163303610432574360675460685461037a9190610ac8565b106103b45760405162461bcd60e51b815260206004820152600560248201526427a918181960d91b60448201526064015b60405180910390fd5b60008183116103cc576103c78383610ae0565b6103d6565b6103d68284610ae0565b90506000836103e6836064610a87565b6103f09190610aa6565b9050606654811061042b5760405162461bcd60e51b81526020600482015260056024820152644f5230303360d81b60448201526064016103ab565b5050610474565b6033546001600160a01b031633146104745760405162461bcd60e51b815260206004820152600560248201526413d48c0c0d60da1b60448201526064016103ab565b436068556001600160a01b038681166000818152606560209081526040808320948a16808452948252918290208590558151928352820192909252908101839052606081018290527fa5b02dcb5d37a68f596ddc4fffa6095088b8ed38d7328a3da32e17148d3d45399060800160405180910390a1505050505050565b6104f96107ad565b6105036000610807565b565b61050d6107ad565b606a80546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff161580801561054f5750600054600160ff909116105b806105695750303b158015610569575060005460ff166001145b6105cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103ab565b6000805460ff1916600117905580156105ef576000805461ff0019166101001790555b6105f7610859565b60668390556067829055620f42406069556040805160208101859052600080516020610b43833981519152910160408051601f198184030181529082905261063e91610a0a565b60405180910390a1600080516020610b4383398151915260675460405160200161066a91815260200190565b60408051601f198184030181529082905261068491610a3d565b60405180910390a180156106d2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b038083166000908152606560209081526040808320938516835292905290812054806103095760405162461bcd60e51b81526020600482015260056024820152644f5230303160d81b60448201526064016103ab565b61073c6107ad565b6001600160a01b0381166107a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ab565b6107aa81610807565b50565b6033546001600160a01b031633146105035760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ab565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166108805760405162461bcd60e51b81526004016103ab90610af7565b610503600054610100900460ff166108aa5760405162461bcd60e51b81526004016103ab90610af7565b61050333610807565b80356001600160a01b03811681146108ca57600080fd5b919050565b600080604083850312156108e257600080fd5b6108eb836108b3565b91506108f9602084016108b3565b90509250929050565b6000806040838503121561091557600080fd5b50508035926020909101359150565b60008060006060848603121561093957600080fd5b610942846108b3565b9250610950602085016108b3565b9150604084013590509250925092565b6000806000806080858703121561097657600080fd5b61097f856108b3565b935061098d602086016108b3565b93969395505050506040820135916060013590565b6000602082840312156109b457600080fd5b610309826108b3565b6000815180845260005b818110156109e3576020818501810151868301820152016109c7565b818111156109f5576000602083870101525b50601f01601f19169290920160200192915050565b6040815260096040820152681cda5e99531a5b5a5d60ba1b606082015260806020820152600061030960808301846109bd565b60408152600a604082015269189b1bd8dad31a5b5a5d60b21b606082015260806020820152600061030960808301846109bd565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610aa157610aa1610a71565b500290565b600082610ac357634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610adb57610adb610a71565b500190565b600082821015610af257610af2610a71565b500390565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe63c3003ba148ae22ef0cecea7dab164660fafd04037d699677e4478e17ef7b1ba264697066735822122027606b4382d6f195fa9f7fbde943644192fc22afcde89f1ee05f53e6c3f889ea64736f6c634300080f0033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063eb54804811610066578063eb548048146101e1578063f2fde38b146101f4578063f3bcd23714610207578063f77c47911461021057600080fd5b80638da5cb5b1461018d57806392eefe9b146101b25780639cda4e54146101c5578063e4a30116146101ce57600080fd5b80634bb846e1116100d35780634bb846e1146101565780635c5cf01a146101695780635db9cdb91461017c578063715018a61461018557600080fd5b80631f312404146100fa578063207add9114610138578063210fd2711461014d575b600080fd5b6101256101083660046108cf565b606560209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b61014b610146366004610902565b610223565b005b61012560665481565b610125610164366004610924565b6102bd565b61014b610177366004610960565b610310565b61012560685481565b61014b6104f1565b6033546001600160a01b03165b6040516001600160a01b03909116815260200161012f565b61014b6101c03660046109a2565b610505565b61012560695481565b61014b6101dc366004610902565b61052f565b6101256101ef3660046108cf565b6106d7565b61014b6102023660046109a2565b610734565b61012560675481565b606a5461019a906001600160a01b031681565b61022b6107ad565b606682905560678190556040805160208101849052600080516020610b43833981519152910160408051601f198184030181529082905261026b91610a0a565b60405180910390a1600080516020610b4383398151915260675460405160200161029791815260200190565b60408051601f19818403018152908290526102b191610a3d565b60405180910390a15050565b6000826001600160a01b0316846001600160a01b0316036102df575080610309565b60006102eb85856106d7565b6069549091506102fb8285610a87565b6103059190610aa6565b9150505b9392505050565b6001600160a01b038085166000908152606560209081526040808320938716835292905290812054606954909190849061034a9085610a87565b6103549190610aa6565b606a549091506001600160a01b03163303610432574360675460685461037a9190610ac8565b106103b45760405162461bcd60e51b815260206004820152600560248201526427a918181960d91b60448201526064015b60405180910390fd5b60008183116103cc576103c78383610ae0565b6103d6565b6103d68284610ae0565b90506000836103e6836064610a87565b6103f09190610aa6565b9050606654811061042b5760405162461bcd60e51b81526020600482015260056024820152644f5230303360d81b60448201526064016103ab565b5050610474565b6033546001600160a01b031633146104745760405162461bcd60e51b815260206004820152600560248201526413d48c0c0d60da1b60448201526064016103ab565b436068556001600160a01b038681166000818152606560209081526040808320948a16808452948252918290208590558151928352820192909252908101839052606081018290527fa5b02dcb5d37a68f596ddc4fffa6095088b8ed38d7328a3da32e17148d3d45399060800160405180910390a1505050505050565b6104f96107ad565b6105036000610807565b565b61050d6107ad565b606a80546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff161580801561054f5750600054600160ff909116105b806105695750303b158015610569575060005460ff166001145b6105cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103ab565b6000805460ff1916600117905580156105ef576000805461ff0019166101001790555b6105f7610859565b60668390556067829055620f42406069556040805160208101859052600080516020610b43833981519152910160408051601f198184030181529082905261063e91610a0a565b60405180910390a1600080516020610b4383398151915260675460405160200161066a91815260200190565b60408051601f198184030181529082905261068491610a3d565b60405180910390a180156106d2576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b038083166000908152606560209081526040808320938516835292905290812054806103095760405162461bcd60e51b81526020600482015260056024820152644f5230303160d81b60448201526064016103ab565b61073c6107ad565b6001600160a01b0381166107a15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ab565b6107aa81610807565b50565b6033546001600160a01b031633146105035760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ab565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166108805760405162461bcd60e51b81526004016103ab90610af7565b610503600054610100900460ff166108aa5760405162461bcd60e51b81526004016103ab90610af7565b61050333610807565b80356001600160a01b03811681146108ca57600080fd5b919050565b600080604083850312156108e257600080fd5b6108eb836108b3565b91506108f9602084016108b3565b90509250929050565b6000806040838503121561091557600080fd5b50508035926020909101359150565b60008060006060848603121561093957600080fd5b610942846108b3565b9250610950602085016108b3565b9150604084013590509250925092565b6000806000806080858703121561097657600080fd5b61097f856108b3565b935061098d602086016108b3565b93969395505050506040820135916060013590565b6000602082840312156109b457600080fd5b610309826108b3565b6000815180845260005b818110156109e3576020818501810151868301820152016109c7565b818111156109f5576000602083870101525b50601f01601f19169290920160200192915050565b6040815260096040820152681cda5e99531a5b5a5d60ba1b606082015260806020820152600061030960808301846109bd565b60408152600a604082015269189b1bd8dad31a5b5a5d60b21b606082015260806020820152600061030960808301846109bd565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610aa157610aa1610a71565b500290565b600082610ac357634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115610adb57610adb610a71565b500190565b600082821015610af257610af2610a71565b500390565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe63c3003ba148ae22ef0cecea7dab164660fafd04037d699677e4478e17ef7b1ba264697066735822122027606b4382d6f195fa9f7fbde943644192fc22afcde89f1ee05f53e6c3f889ea64736f6c634300080f0033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
