fluid-contracts-public/deployments/arbitrum/Ratio2xFallbackCLRSOracleL2_WEETH_WSTETH.json

698 lines
141 KiB
JSON
Raw Permalink Normal View History

{
"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"
}
}
}
}