fluid-contracts-public/deployments/mainnet/v1_1_0/ChainlinkOracle_WBTC_USDC.json

353 lines
68 KiB
JSON
Raw Normal View History

{
"address": "0x131BA983Ab640Ce291B98694b3Def4288596cD09",
"abi": [
{
"inputs": [
{
"internalType": "uint8",
"name": "mainSource_",
"type": "uint8"
},
{
"components": [
{
"internalType": "uint8",
"name": "hops",
"type": "uint8"
},
{
"components": [
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "feed",
"type": "address"
},
{
"internalType": "bool",
"name": "invertRate",
"type": "bool"
},
{
"internalType": "uint256",
"name": "token0Decimals",
"type": "uint256"
}
],
"internalType": "struct ChainlinkStructs.ChainlinkFeedData",
"name": "feed1",
"type": "tuple"
},
{
"components": [
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "feed",
"type": "address"
},
{
"internalType": "bool",
"name": "invertRate",
"type": "bool"
},
{
"internalType": "uint256",
"name": "token0Decimals",
"type": "uint256"
}
],
"internalType": "struct ChainlinkStructs.ChainlinkFeedData",
"name": "feed2",
"type": "tuple"
},
{
"components": [
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "feed",
"type": "address"
},
{
"internalType": "bool",
"name": "invertRate",
"type": "bool"
},
{
"internalType": "uint256",
"name": "token0Decimals",
"type": "uint256"
}
],
"internalType": "struct ChainlinkStructs.ChainlinkFeedData",
"name": "feed3",
"type": "tuple"
}
],
"internalType": "struct ChainlinkStructs.ChainlinkConstructorParams",
"name": "chainlinkParams_",
"type": "tuple"
},
{
"components": [
{
"internalType": "contract IRedstoneOracle",
"name": "oracle",
"type": "address"
},
{
"internalType": "bool",
"name": "invertRate",
"type": "bool"
},
{
"internalType": "uint256",
"name": "token0Decimals",
"type": "uint256"
}
],
"internalType": "struct RedstoneStructs.RedstoneOracleData",
"name": "redstoneOracle_",
"type": "tuple"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "errorId_",
"type": "uint256"
}
],
"name": "FluidOracleError",
"type": "error"
},
{
"inputs": [],
"name": "FALLBACK_ORACLE_MAIN_SOURCE",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "chainlinkOracleData",
"outputs": [
{
"internalType": "uint256",
"name": "chainlinkExchangeRate_",
"type": "uint256"
},
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "chainlinkFeed1_",
"type": "address"
},
{
"internalType": "bool",
"name": "chainlinkInvertRate1_",
"type": "bool"
},
{
"internalType": "uint256",
"name": "chainlinkExchangeRate1_",
"type": "uint256"
},
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "chainlinkFeed2_",
"type": "address"
},
{
"internalType": "bool",
"name": "chainlinkInvertRate2_",
"type": "bool"
},
{
"internalType": "uint256",
"name": "chainlinkExchangeRate2_",
"type": "uint256"
},
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "chainlinkFeed3_",
"type": "address"
},
{
"internalType": "bool",
"name": "chainlinkInvertRate3_",
"type": "bool"
},
{
"internalType": "uint256",
"name": "chainlinkExchangeRate3_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExchangeRate",
"outputs": [
{
"internalType": "uint256",
"name": "exchangeRate_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExchangeRateLiquidate",
"outputs": [
{
"internalType": "uint256",
"name": "exchangeRate_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExchangeRateOperate",
"outputs": [
{
"internalType": "uint256",
"name": "exchangeRate_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "redstoneOracleData",
"outputs": [
{
"internalType": "uint256",
"name": "redstoneExchangeRate_",
"type": "uint256"
},
{
"internalType": "contract IRedstoneOracle",
"name": "redstoneOracle_",
"type": "address"
},
{
"internalType": "bool",
"name": "redstoneInvertRate_",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"transactionHash": "0x4e8d0012fc4cfe8e81d6e6f44f9b5593c98b235a16ecf5b2814783f1d1ad9c8e",
"receipt": {
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
"contractAddress": null,
"transactionIndex": 114,
"gasUsed": "807146",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x51053034ea41992d73a4640ef8796c5c603cf4cce4578eec4fe4797d70fe5a69",
"transactionHash": "0x4e8d0012fc4cfe8e81d6e6f44f9b5593c98b235a16ecf5b2814783f1d1ad9c8e",
"logs": [],
"blockNumber": 20219198,
"cumulativeGasUsed": "10713727",
"status": 1,
"byzantium": true
},
"args": [
1,
{
"hops": 3,
"feed1": {
"feed": "0xfdFD9C85aD200c506Cf9e21F1FD8dd01932FBB23",
"invertRate": false,
"token0Decimals": 8
},
"feed2": {
"feed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c",
"invertRate": false,
"token0Decimals": 8
},
"feed3": {
"feed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6",
"invertRate": true,
"token0Decimals": 6
}
},
{
"oracle": "0x0000000000000000000000000000000000000000",
"invertRate": false,
"token0Decimals": 0
}
],
"numDeployments": 1,
"solcInputHash": "7ea6a03437971b2bd8979b983d3f0850",
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"mainSource_\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"hops\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"invertRate\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"token0Decimals\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainlinkStructs.ChainlinkFeedData\",\"name\":\"feed1\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"invertRate\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"token0Decimals\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainlinkStructs.ChainlinkFeedData\",\"name\":\"feed2\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"feed\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"invertRate\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"token0Decimals\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainlinkStructs.ChainlinkFeedData\",\"name\":\"feed3\",\"type\":\"tuple\"}],\"internalType\":\"struct ChainlinkStructs.ChainlinkConstructorParams\",\"name\":\"chainlinkParams_\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"contract IRedstoneOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"invertRate\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"token0Decimals\",\"type\":\"uint256\"}],\"internalType\":\"struct RedstoneStructs.RedstoneOracleData\",\"name\":\"redstoneOracle_\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"errorId_\",\"type\":\"uint256\"}],\"name\":\"FluidOracleError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FALLBACK_ORACLE_MAIN_SOURCE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainlinkOracleData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate_\",\"type\":\"uint256\"},{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"chainlinkFeed1_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"chainlinkInvertRate1_\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate1_\",\"type\":\"uint256\"},{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"chainlinkFeed2_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"chainlinkInvertRate2_\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate2_\",\"type\":\"uint256\"},{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"chainlinkFeed3_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"chainlinkInvertRate3_\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate3_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"exchangeRate_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExchangeRateLiquidate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"exchangeRate_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExchangeRateOperate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"exchangeRate_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"redstoneOracleData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"redstoneExchangeRate_\",\"type\":\"uint256\"},{\"internalType\":\"contract IRedstoneOracle\",\"name\":\"redstoneOracle_\",\"type\"
"bytecode": "0x6102c060405261dead610100523480156200001957600080fd5b5060405162001608380380620016088339810160408190526200003c916200051f565b805183908390839082906001600160a01b0316156200005c578162000088565b6040518060600160405280610100516001600160a01b0316815260200160001515815260200160018152505b80516001600160a01b03161580620000a257506040810151155b15620000ca5760405163c82fc46560e01b815261fa0160048201526024015b60405180910390fd5b80516001600160a01b039081166080526020820151151560a0526101005182518216911614620001195760408101516200010690601b62000624565b6200011390600a6200073d565b6200011c565b60015b60c0526101005181516001600160a01b039081169116146200015d5760408101516200014a90601b62000752565b6200015790600a6200073d565b62000160565b60015b60e052508051600160ff90911610806200018157506003816000015160ff16115b80620001aa57506020810151516001600160a01b03161580620001aa5750602081015160400151155b80620001e557506001816000015160ff16118015620001e557506040810151516001600160a01b03161580620001e557506040808201510151155b806200022157506002816000015160ff161180156200022157506060810151516001600160a01b03161580620002215750606081015160400151155b15620002455760405163c82fc46560e01b815261ee496004820152602401620000c1565b60208082018051516001600160a01b03908116610120526040808501805151831661014052606086018051519093166101605283518501511515610180525184015115156101a05290519092015115156101c052510151620002a990601b62000624565b620002b690600a6200073d565b6101e052602081015160400151620002d090601b62000752565b620002dd90600a6200073d565b610200528051600160ff90911611620002f85760016200031a565b60408082015101516200030d90601b62000624565b6200031a90600a6200073d565b610220528051600160ff909116116200033557600162000357565b60408082015101516200034a90601b62000752565b6200035790600a6200073d565b610240528051600260ff909116116200037257600162000395565b6060810151604001516200038890601b62000624565b6200039590600a6200073d565b610260528051600260ff90911611620003b0576001620003d3565b606081015160400151620003c690601b62000752565b620003d390600a6200073d565b6102805250600160ff84161080620003ee575060038360ff16115b15620004125760405163c82fc46560e01b815261fde96004820152602401620000c1565b505060ff166102a0525062000768915050565b805160ff811681146200043757600080fd5b919050565b604051606081016001600160401b03811182821017156200046d57634e487b7160e01b600052604160045260246000fd5b60405290565b604051608081016001600160401b03811182821017156200046d57634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620004ba57600080fd5b50565b805180151581146200043757600080fd5b600060608284031215620004e157600080fd5b620004eb6200043c565b90508151620004fa81620004a4565b81526200050a60208301620004bd565b60208201526040820151604082015292915050565b60008060008385036101c08112156200053757600080fd5b620005428562000425565b9350610140601f19820112156200055857600080fd5b6200056262000473565b620005706020870162000425565b8152620005818760408801620004ce565b6020820152620005958760a08801620004ce565b6040820152620005aa876101008801620004ce565b606082015280935050606061015f1982011215620005c757600080fd5b50620005d26200043c565b610160850151620005e381620004a4565b8152620005f46101808601620004bd565b60208201526101a094909401516040850152509093909250565b634e487b7160e01b600052601160045260246000fd5b818103818111156200063a576200063a6200060e565b92915050565b600181815b80851115620006815781600019048211156200066557620006656200060e565b808516156200067357918102915b93841c939080029062000645565b509250929050565b6000826200069a575060016200063a565b81620006a9575060006200063a565b8160018114620006c25760028114620006cd57620006ed565b60019150506200063a565b60ff841115620006e157620006e16200060e565b50506001821b6200063a565b5060208310610133831016604e8410600b841016171562000712575081810a6200063a565b6200071e838362000640565b80600019048211156200073557620007356200060e565b029392505050565b60006200074b838362000689565b9392505050565b808201808211156200063a576200063a6200060e565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161020051610220516102405161026051610280516102a051610d1e620008ea60003960008181607e01528181610a0a0152610a4301526000818161041501526107db0152600081816103f401526107ba01526000818161032301526106e401526000
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c80638e7bfbc0116100505780638e7bfbc01461015a578063e6aa216c14610170578063f3190c891461017057600080fd5b80633437eac4146100775780637557ca41146100ad57806388c3520914610120575b600080fd5b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020015b60405180910390f35b6100b5610178565b604080519a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c0152971515978a01979097526060890195909552928616608088015290151560a087015260c086015290921660e0840152901515610100830152610120820152610140016100a4565b610128610461565b6040805193845273ffffffffffffffffffffffffffffffffffffffff90921660208401521515908201526060016100a4565b610162610534565b6040519081526020016100a4565b610162610588565b60008060008060008060008060008061018f610597565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061025d7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610813565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff82161561034c576103477f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610813565b61034f565b60005b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff82161561043e576104397f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610813565b610441565b60005b995099509950995099509950995099509950995090919293949596979899565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146104e6576104e16108d4565b6104e9565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b600061053e610a05565b5090506000819003610585576040517fc82fc465000000000000000000000000000000000000000000000000000000008152620101d1600482015260240160405180910390fd5b90565b6000610592610534565b905090565b60006106257f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610813565b905080158061066857507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16155b156106705790565b61067c601b600a610bfb565b6107087f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610813565b6107129083610c0e565b61071c9190610c25565b905080158061075f57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16155b156107675790565b610773601b600a610bfb565b6107ff7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000
"devdoc": {
"kind": "dev",
"methods": {
"constructor": {
"params": {
"chainlinkParams_": "chainlink Oracle constructor params struct.",
"mainSource_": "which oracle to use as main source: 1 = Chainlink, 2 = Redstone (other one is fallback).",
"redstoneOracle_": "Redstone Oracle data. (address can be set to zero address if using Chainlink only)"
}
},
"getExchangeRate()": {
"details": "Deprecated. Use `getExchangeRateOperate()` and `getExchangeRateLiquidate()` instead. Only implemented for backwards compatibility."
}
},
"title": "Chainlink / Redstone Oracle (with fallback)",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"FALLBACK_ORACLE_MAIN_SOURCE()": {
"notice": "which oracle to use as main source: - 1 = Chainlink ONLY (no fallback) - 2 = Chainlink with Redstone Fallback - 3 = Redstone with Chainlink Fallback"
},
"chainlinkOracleData()": {
"notice": "returns all Chainlink oracle related data as utility for easy off-chain use / block explorer in a single view method"
},
"constructor": {
"notice": "sets the main source, Chainlink Oracle and Redstone Oracle data."
},
"getExchangeRateLiquidate()": {
"notice": "Get the `exchangeRate_` between the underlying asset and the peg asset in 1e27 for liquidations"
},
"getExchangeRateOperate()": {
"notice": "Get the `exchangeRate_` between the underlying asset and the peg asset in 1e27 for operates"
},
"redstoneOracleData()": {
"notice": "returns all Redstone oracle related data as utility for easy off-chain use / block explorer in a single view method"
}
},
"notice": "Gets the exchange rate between the underlying asset and the peg asset by using: the price from a Chainlink price feed or a Redstone Oracle with one of them being used as main source and the other one acting as a fallback if the main source fails for any reason. Reverts if fetched rate is 0.",
"version": 1
},
"storageLayout": {
"storage": [],
"types": null
}
}