mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
698 lines
141 KiB
JSON
698 lines
141 KiB
JSON
|
{
|
||
|
"address": "0x0D4B70DCd1E1B70BC1637AF6f104BE871d615278",
|
||
|
"abi": [
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "string",
|
||
|
"name": "infoName_",
|
||
|
"type": "string"
|
||
|
},
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"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"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct FallbackCLRSOracleL2.CLRSConstructorParams",
|
||
|
"name": "cLRSParams1_",
|
||
|
"type": "tuple"
|
||
|
},
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"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"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct FallbackCLRSOracleL2.CLRSConstructorParams",
|
||
|
"name": "cLRSParams2_",
|
||
|
"type": "tuple"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "sequencerUptimeFeed_",
|
||
|
"type": "address"
|
||
|
}
|
||
|
],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "constructor"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "errorId_",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"name": "FluidOracleError",
|
||
|
"type": "error"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [],
|
||
|
"name": "FALLBACK_ORACLE2_MAIN_SOURCE",
|
||
|
"outputs": [
|
||
|
{
|
||
|
"internalType": "uint8",
|
||
|
"name": "",
|
||
|
"type": "uint8"
|
||
|
}
|
||
|
],
|
||
|
"stateMutability": "view",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"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": "chainlinkOracleData2",
|
||
|
"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": "infoName",
|
||
|
"outputs": [
|
||
|
{
|
||
|
"internalType": "string",
|
||
|
"name": "",
|
||
|
"type": "string"
|
||
|
}
|
||
|
],
|
||
|
"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"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [],
|
||
|
"name": "redstoneOracleData2",
|
||
|
"outputs": [
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "redstoneExchangeRate_",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "contract IRedstoneOracle",
|
||
|
"name": "redstoneOracle_",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "bool",
|
||
|
"name": "redstoneInvertRate_",
|
||
|
"type": "bool"
|
||
|
}
|
||
|
],
|
||
|
"stateMutability": "view",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [],
|
||
|
"name": "sequencerL2Data",
|
||
|
"outputs": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "sequencerUptimeFeed_",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "maxGracePeriod_",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "bool",
|
||
|
"name": "isSequencerUp_",
|
||
|
"type": "bool"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "lastUptimeStartedAt_",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "gracePeriod_",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "bool",
|
||
|
"name": "gracePeriodPassed_",
|
||
|
"type": "bool"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "lastOutageStartedAt_",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "bool",
|
||
|
"name": "isSequencerUpAndValid_",
|
||
|
"type": "bool"
|
||
|
}
|
||
|
],
|
||
|
"stateMutability": "view",
|
||
|
"type": "function"
|
||
|
}
|
||
|
],
|
||
|
"transactionHash": "0x77eede23a60e8da6fbde673ad52e9476db41c8c5b495b10e5a40f0c45cde5b88",
|
||
|
"receipt": {
|
||
|
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
|
||
|
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
|
||
|
"contractAddress": null,
|
||
|
"transactionIndex": 9,
|
||
|
"gasUsed": "3573333",
|
||
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||
|
"blockHash": "0xc1b9842526d0024bf2879d43448a9d9cdf1b0e38e09ac5f0f6dbd4651cf235ed",
|
||
|
"transactionHash": "0x77eede23a60e8da6fbde673ad52e9476db41c8c5b495b10e5a40f0c45cde5b88",
|
||
|
"logs": [],
|
||
|
"blockNumber": 229058722,
|
||
|
"cumulativeGasUsed": "6495925",
|
||
|
"status": 1,
|
||
|
"byzantium": true
|
||
|
},
|
||
|
"args": [
|
||
|
"WSTETH for 1 WEETH",
|
||
|
{
|
||
|
"chainlinkParams": {
|
||
|
"hops": 1,
|
||
|
"feed1": {
|
||
|
"feed": "0x20bAe7e1De9c596f5F7615aeaa1342Ba99294e12",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 18
|
||
|
},
|
||
|
"feed2": {
|
||
|
"feed": "0x0000000000000000000000000000000000000000",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 0
|
||
|
},
|
||
|
"feed3": {
|
||
|
"feed": "0x0000000000000000000000000000000000000000",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 0
|
||
|
}
|
||
|
},
|
||
|
"redstoneOracle": {
|
||
|
"oracle": "0x0000000000000000000000000000000000000000",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 0
|
||
|
},
|
||
|
"mainSource": 1
|
||
|
},
|
||
|
{
|
||
|
"chainlinkParams": {
|
||
|
"hops": 1,
|
||
|
"feed1": {
|
||
|
"feed": "0xB1552C5e96B312d0Bf8b554186F846C40614a540",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 18
|
||
|
},
|
||
|
"feed2": {
|
||
|
"feed": "0x0000000000000000000000000000000000000000",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 0
|
||
|
},
|
||
|
"feed3": {
|
||
|
"feed": "0x0000000000000000000000000000000000000000",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 0
|
||
|
}
|
||
|
},
|
||
|
"redstoneOracle": {
|
||
|
"oracle": "0x0000000000000000000000000000000000000000",
|
||
|
"invertRate": false,
|
||
|
"token0Decimals": 0
|
||
|
},
|
||
|
"mainSource": 1
|
||
|
},
|
||
|
"0xFdB631F5EE196F0ed6FAa767959853A9F217697D"
|
||
|
],
|
||
|
"numDeployments": 1,
|
||
|
"solcInputHash": "d90fd93c0cb282113613d77962ef8eb0",
|
||
|
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"infoName_\",\"type\":\"string\"},{\"components\":[{\"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\"}],\"internalType\":\"struct FallbackCLRSOracleL2.CLRSConstructorParams\",\"name\":\"cLRSParams1_\",\"type\":\"tuple\"},{\"components\":[{\"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\"}],\"internalType\":\"struct FallbackCLRSOracleL2.CLRSConstructorParams\",\"name\":\"cLRSParams2_\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"sequencerUptimeFeed_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},
|
||
|
"bytecode": "0x61052060405261dead6101208190526101c0523480156200001f57600080fd5b5060405162002dc738038062002dc7833981016040819052620000429162000a7d565b83838282826000015183602001518460400151828282818c600001518d602001518e604001518160006001600160a01b031686600001516001600160a01b0316146200008f5785620000bb565b60405180606001604052806101c0516001600160a01b0316815260200160001515815260200160018152505b82516001600160a01b031615620000d35782620000ff565b6040518060600160405280610120516001600160a01b0316815260200160001515815260200160018152505b8d8f806000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550506020815111806200013857508051155b15620001605760405163c82fc46560e01b815261ea6a60048201526024015b60405180910390fd5b6020015160805280516001600160a01b031615806200018157506040810151155b15620001a55760405163c82fc46560e01b815261fa01600482015260240162000157565b80516001600160a01b0390811660a0526020820151151560c0526101205182518216911614620001f4576040810151620001e190601b62000b86565b620001ee90600a62000c9f565b620001f7565b60015b60e0526101205181516001600160a01b03908116911614620002385760408101516200022590601b62000cb4565b6200023290600a62000c9f565b6200023b565b60015b610100525080516001600160a01b031615806200025a57506040810151155b156200027e5760405163c82fc46560e01b815261fa01600482015260240162000157565b80516001600160a01b039081166101405260208201511515610160526101c05182518216911614620002cf576040810151620002bc90601b62000b86565b620002c990600a62000c9f565b620002d2565b60015b610180526101c05181516001600160a01b03908116911614620003145760408101516200030190601b62000cb4565b6200030e90600a62000c9f565b62000317565b60015b6101a052508051600160ff90911610806200033957506003816000015160ff16115b806200036257506020810151516001600160a01b03161580620003625750602081015160400151155b806200039d57506001816000015160ff161180156200039d57506040810151516001600160a01b031615806200039d57506040808201510151155b80620003d957506002816000015160ff16118015620003d957506060810151516001600160a01b03161580620003d95750606081015160400151155b15620003fd5760405163c82fc46560e01b815261ee49600482015260240162000157565b60208082018051516001600160a01b039081166101e052604080850180515183166102005260608601805151909316610220528351850151151561024052518401511515610260529051909201511515610280525101516200046190601b62000b86565b6200046e90600a62000c9f565b6102a0526020810151604001516200048890601b62000cb4565b6200049590600a62000c9f565b6102c0528051600160ff90911611620004b0576001620004d2565b6040808201510151620004c590601b62000b86565b620004d290600a62000c9f565b6102e0528051600160ff90911611620004ed5760016200050f565b60408082015101516200050290601b62000cb4565b6200050f90600a62000c9f565b610300528051600260ff909116116200052a5760016200054d565b6060810151604001516200054090601b62000b86565b6200054d90600a62000c9f565b610320528051600260ff90911611620005685760016200058b565b6060810151604001516200057e90601b62000cb4565b6200058b90600a62000c9f565b6103405250600160ff84161080620005a6575060038360ff16115b15620005ca5760405163c82fc46560e01b815261fde9600482015260240162000157565b505060ff908116610360528151600191161080620005ef57506003816000015160ff16115b806200061857506020810151516001600160a01b03161580620006185750602081015160400151155b806200065357506001816000015160ff161180156200065357506040810151516001600160a01b031615806200065357506040808201510151155b806200068f57506002816000015160ff161180156200068f57506060810151516001600160a01b031615806200068f5750606081015160400151155b15620006b35760405163c82fc46560e01b815261ee49600482015260240162000157565b60208082018051516001600160a01b0390811661038052604080850180515183166103a052606086018051519093166103c052835185015115156103e052518401511515610400529051909201511515610420525101516200071790601b62000b86565b6200072490600a62000c9f565b610440526020810151604001516200073e90601b62000cb4565b6200074b90600a62000c9f565b610460528051600160ff909116116200076657600162000788565b60408082015101516200077b90601b62000b86565b6200078890600a62000c9f565b610480528051600160ff90911611620007a3576001620007c5565b6040808201510151620007b890601b62000cb4565b620007c590600a62000c9f565b6104a0528051600260ff90911611620007e057600162000803565b606081015160400151620007f690601b62000b86565b
|
||
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638e7bfbc011610081578063e6aa216c1161005b578063e6aa216c14610271578063f3190c89146101e2578063f5be67a51461027957600080fd5b80638e7bfbc0146101e2578063abd5f95d146101f8578063dc4595121461020d57600080fd5b80633437eac4116100b25780633437eac4146101415780637557ca411461016757806388c35209146101da57600080fd5b80632faeaacb146100ce57806331b037a214610107575b600080fd5b7f00000000000000000000000000000000000000000000000000000000000000005b60405160ff90911681526020015b60405180910390f35b61010f610281565b6040805193845273ffffffffffffffffffffffffffffffffffffffff90921660208401521515908201526060016100fe565b7f00000000000000000000000000000000000000000000000000000000000000006100f0565b61016f610354565b604080519a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c0152971515978a01979097526060890195909552928616608088015290151560a087015260c086015290921660e0840152901515610100830152610120820152610140016100fe565b61010f61063d565b6101ea610710565b6040519081526020016100fe565b61020061078f565b6040516100fe9190611a25565b6102156108f4565b6040805173ffffffffffffffffffffffffffffffffffffffff909916895260208901979097529415159587019590955260608601929092526080850152151560a084015260c0830191909152151560e0820152610100016100fe565b6101ea610a2a565b61016f610a34565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461030657610301610cf5565b610309565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b60008060008060008060008060008061036b610e29565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006104397f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061109b565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff821615610528576105237f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061109b565b61052b565b60005b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff82161561061a576106157f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061109b565b61061d565b60005b995099509950995099509950995099509950995090919293949596979899565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146106c2576106bd61115c565b6106c5565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b600061071a611287565b5090506000819003610761576040517fc82fc46500000000000000000000000000000000000000000000000000000000815261eb9760048201526024015b60405180910390fd5b8061076e601b600a611be2565b61077661132c565b6107809190611bf5565b61078a9190611c0c565b905090565b606060005b6020811080156107fa57507f000000000000000000000000000000000000000000000000000000000000000081602081106107d1576107d1611c47565b1a60f81b7fff000000000000000000000000000000000000000000000000000000
|
||
|
"devdoc": {
|
||
|
"kind": "dev",
|
||
|
"methods": {
|
||
|
"constructor": {
|
||
|
"params": {
|
||
|
"cLRSParams1_": "CLRS Fallback Oracle data for ratio dividend",
|
||
|
"cLRSParams2_": "CLRS Fallback Oracle data for ratio divisor",
|
||
|
"infoName_": "Oracle identify helper name.",
|
||
|
"sequencerUptimeFeed_": "L2 sequencer uptime Chainlink feed"
|
||
|
}
|
||
|
},
|
||
|
"getExchangeRate()": {
|
||
|
"details": "Deprecated. Use `getExchangeRateOperate()` and `getExchangeRateLiquidate()` instead. Only implemented for backwards compatibility."
|
||
|
}
|
||
|
},
|
||
|
"title": "Ratio of 2 Chainlink / Redstone Oracles (with fallback) for Layer 2 (with sequencer outage detection)",
|
||
|
"version": 1
|
||
|
},
|
||
|
"userdoc": {
|
||
|
"kind": "user",
|
||
|
"methods": {
|
||
|
"FALLBACK_ORACLE2_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"
|
||
|
},
|
||
|
"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"
|
||
|
},
|
||
|
"chainlinkOracleData2()": {
|
||
|
"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 two CLRS oracle configs"
|
||
|
},
|
||
|
"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"
|
||
|
},
|
||
|
"infoName()": {
|
||
|
"notice": "helper string to easily identify the oracle. E.g. token symbols"
|
||
|
},
|
||
|
"redstoneOracleData()": {
|
||
|
"notice": "returns all Redstone oracle related data as utility for easy off-chain use / block explorer in a single view method"
|
||
|
},
|
||
|
"redstoneOracleData2()": {
|
||
|
"notice": "returns all Redstone oracle related data as utility for easy off-chain use / block explorer in a single view method"
|
||
|
},
|
||
|
"sequencerL2Data()": {
|
||
|
"notice": "returns all sequencer uptime feed related data"
|
||
|
}
|
||
|
},
|
||
|
"notice": "Gets the exchange rate between the underlying asset and the peg asset by using: 1. 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. 2. set into ratio with another price fetched the same way. I.e. it is possible to do Chainlink Oracle / Chainlink Oracle. E.g. wstETH per 1 weETH on a L2 via CL feeds.",
|
||
|
"version": 1
|
||
|
},
|
||
|
"storageLayout": {
|
||
|
"storage": [
|
||
|
{
|
||
|
"astId": 250,
|
||
|
"contract": "contracts/oracle/oraclesL2/ratio2xFallbackCLRSOracleL2.sol:Ratio2xFallbackCLRSOracleL2",
|
||
|
"label": "_SEQUENCER_ORACLE",
|
||
|
"offset": 0,
|
||
|
"slot": "0",
|
||
|
"type": "t_contract(IChainlinkAggregatorV3)2375"
|
||
|
}
|
||
|
],
|
||
|
"types": {
|
||
|
"t_contract(IChainlinkAggregatorV3)2375": {
|
||
|
"encoding": "inplace",
|
||
|
"label": "contract IChainlinkAggregatorV3",
|
||
|
"numberOfBytes": "20"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|