fluid-contracts-public/deployments/arbitrum/v1_1_0/CLRS2UniV3CheckCLRSOracleL2_WSTETH_USDT.json

804 lines
231 KiB
JSON
Raw Normal View History

{
"address": "0xaB155F1B782f313d97920CB7a1Ba398E3de33A84",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "infoName_",
"type": "string"
},
{
"components": [
{
"internalType": "uint8",
"name": "fallbackMainSource",
"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 CLRS2UniV3CheckCLRSOracleL2.CLRS2ConstructorParams",
"name": "cLRS2Params_",
"type": "tuple"
},
{
"components": [
{
"components": [
{
"internalType": "contract IUniswapV3Pool",
"name": "pool",
"type": "address"
},
{
"internalType": "bool",
"name": "invertRate",
"type": "bool"
},
{
"internalType": "uint256[3]",
"name": "tWAPMaxDeltaPercents",
"type": "uint256[3]"
},
{
"internalType": "uint32[5]",
"name": "secondsAgos",
"type": "uint32[5]"
}
],
"internalType": "struct UniV3OracleImpl.UniV3ConstructorParams",
"name": "uniV3Params",
"type": "tuple"
},
{
"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": "uint8",
"name": "rateSource",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "fallbackMainSource",
"type": "uint8"
},
{
"internalType": "uint256",
"name": "rateCheckMaxDeltaPercent",
"type": "uint256"
}
],
"internalType": "struct UniV3CheckCLRSOracle.UniV3CheckCLRSConstructorParams",
"name": "uniV3CheckCLRSParams_",
"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": "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"
},
{
"inputs": [],
"name": "uniV3CheckOracleData",
"outputs": [
{
"internalType": "uint256",
"name": "rateCheckMaxDelta_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "rateSource_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "fallbackMainSource_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "uniV3OracleData",
"outputs": [
{
"internalType": "contract IUniswapV3Pool",
"name": "uniV3Pool_",
"type": "address"
},
{
"internalType": "bool",
"name": "uniV3InvertRate_",
"type": "bool"
},
{
"internalType": "uint32[]",
"name": "uniV3secondsAgos_",
"type": "uint32[]"
},
{
"internalType": "uint256[]",
"name": "uniV3TwapDeltas_",
"type": "uint256[]"
},
{
"internalType": "uint256",
"name": "uniV3exchangeRateUnsafe_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "uniV3exchangeRate_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"transactionHash": "0x39cc2aba13e7acf7284746c04a6889698bf9d84f26a913afb575d3b469476734",
"receipt": {
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
"contractAddress": null,
"transactionIndex": 5,
"gasUsed": "5871564",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0xb0e2ff4f32c9c96c8f40c5f298c075e29f734871c196e8e6ac99c43552cf57e8",
"transactionHash": "0x39cc2aba13e7acf7284746c04a6889698bf9d84f26a913afb575d3b469476734",
"logs": [],
"blockNumber": 228977777,
"cumulativeGasUsed": "6557115",
"status": 1,
"byzantium": true
},
"args": [
"USDT for 1 WSTETH",
{
"chainlinkParams": {
"hops": 1,
"feed1": {
"feed": "0xb523AE262D20A936BC152e6023996e46FDC2A95D",
"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
},
"fallbackMainSource": 1
},
{
"chainlinkParams": {
"hops": 2,
"feed1": {
"feed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612",
"invertRate": false,
"token0Decimals": 18
},
"feed2": {
"feed": "0x3f3f5dF88dC9F13eac63DF89EC16ef6e7E25DdE7",
"invertRate": true,
"token0Decimals": 6
},
"feed3": {
"feed": "0x0000000000000000000000000000000000000000",
"invertRate": false,
"token0Decimals": 0
}
},
"uniV3Params": {
"pool": "0xC6962004f452bE9203591991D15f6b388e09E8D0",
"secondsAgos": [
240,
60,
15,
1,
0
],
"tWAPMaxDeltaPercents": [
200,
50,
20
],
"invertRate": false
},
"redstoneOracle": {
"oracle": "0x0000000000000000000000000000000000000000",
"invertRate": false,
"token0Decimals": 0
},
"rateSource": 2,
"fallbackMainSource": 1,
"rateCheckMaxDeltaPercent": 300
},
"0xFdB631F5EE196F0ed6FAa767959853A9F217697D"
],
"numDeployments": 1,
"solcInputHash": "34abf56871e2a889151a39ee29c0ef0f",
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"infoName_\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"fallbackMainSource\",\"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 CLRS2UniV3CheckCLRSOracleL2.CLRS2ConstructorParams\",\"name\":\"cLRS2Params_\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"invertRate\",\"type\":\"bool\"},{\"internalType\":\"uint256[3]\",\"name\":\"tWAPMaxDeltaPercents\",\"type\":\"uint256[3]\"},{\"internalType\":\"uint32[5]\",\"name\":\"secondsAgos\",\"type\":\"uint32[5]\"}],\"internalType\":\"struct UniV3OracleImpl.UniV3ConstructorParams\",\"name\":\"uniV3Params\",\"type\":\"tuple\"},{\"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
"bytecode": "0x61076060405261dead6103208190526103c0523480156200001f57600080fd5b5060405162004ce938038062004ce9833981016040819052620000429162000f81565b8382828282806080015181602001518260400151818b600001518c602001518d604001518160006001600160a01b031686600001516001600160a01b0316146200008d5785620000b9565b60405180606001604052806103c0516001600160a01b0316815260200160001515815260200160018152505b82516001600160a01b031615620000d15782620000fd565b6040518060600160405280610320516001600160a01b0316815260200160001515815260200160018152505b8a600001518c8e806000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550506020815111806200013b57508051155b15620001635760405163c82fc46560e01b815261ea6a60048201526024015b60405180910390fd5b6020015160805280516001600160a01b0316620001985760405163c82fc46560e01b815261f23160048201526024016200015a565b60608101516020810151905163ffffffff9182169116111580620001d857506060810151604081015163ffffffff16906001602002015163ffffffff1611155b806200020057506060818101519081015163ffffffff16906002602002015163ffffffff1611155b806200022857506060810151608081015163ffffffff16906003602002015163ffffffff1611155b156200024c5760405163c82fc46560e01b815261f23260048201526024016200015a565b6040810151516127101115806200026d575060408101518051602090910151115b806200028457506040818101516020810151910151115b15620002a85760405163c82fc46560e01b815261f23360048201526024016200015a565b606081810180515163ffffffff90811661014052815160209081015182166101605282516040015182166101805282519093015181166101a052815160800151166101c052519081015190516200030091906200108a565b63ffffffff166101e052606081015160408101516020909101516200032691906200108a565b63ffffffff1661020052606081810151908101516040909101516200034c91906200108a565b63ffffffff166102205260608181015160808101519101516200037091906200108a565b63ffffffff1661024052604081810180515160e0528051602090810151610100529051909101516101205281516001600160a01b031660a052810151151560c052620003bf601b600a620011b0565b61026052620003d1601b6002620011c5565b620003de90600a620011b0565b610280525080516001600160a01b03161580620003fd57506040810151155b15620004215760405163c82fc46560e01b815261fa0160048201526024016200015a565b80516001600160a01b039081166102a052602082015115156102c0526103205182518216911614620004725760408101516200045f90601b620011df565b6200046c90600a620011b0565b62000475565b60015b6102e0526103205181516001600160a01b03908116911614620004b7576040810151620004a490601b620011f5565b620004b190600a620011b0565b620004ba565b60015b610300525080516001600160a01b03161580620004d957506040810151155b15620004fd5760405163c82fc46560e01b815261fa0160048201526024016200015a565b80516001600160a01b039081166103405260208201511515610360526103c051825182169116146200054e5760408101516200053b90601b620011df565b6200054890600a620011b0565b62000551565b60015b610380526103c05181516001600160a01b03908116911614620005935760408101516200058090601b620011f5565b6200058d90600a620011b0565b62000596565b60015b6103a052508051600160ff9091161080620005b857506003816000015160ff16115b80620005e157506020810151516001600160a01b03161580620005e15750602081015160400151155b806200061c57506001816000015160ff161180156200061c57506040810151516001600160a01b031615806200061c57506040808201510151155b806200065857506002816000015160ff161180156200065857506060810151516001600160a01b03161580620006585750606081015160400151155b156200067c5760405163c82fc46560e01b815261ee4960048201526024016200015a565b60208082018051516001600160a01b039081166103e05260408085018051518316610400526060860180515190931661042052835185015115156104405251840151151561046052905190920151151561048052510151620006e090601b620011df565b620006ed90600a620011b0565b6104a0526020810151604001516200070790601b620011f5565b6200071490600a620011b0565b6104c0528051600160ff909116116200072f57600162000751565b60408082015101516200074490601b620011df565b6200075190600a620011b0565b6104e0528051600160ff909116116200076c5760016200078e565b60408082015101516200078190601b620011f5565b6200078e90600a620011b0565b610500528051600260ff90911611620007a9576001620007cc565b606081015160400151620007bf90601b620011df565b620007cc90600a620011b0565b610520528051600260ff90911611620007e75760016200080a565b606081015160400151620007fd9060
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063a6ac913411610081578063e6aa216c1161005b578063e6aa216c146102ef578063f3190c8914610246578063f5be67a5146102f757600080fd5b8063a6ac91341461025c578063abd5f95d14610276578063dc4595121461028b57600080fd5b80637cebd7c5116100b25780637cebd7c5146101bc57806388c352091461023e5780638e7bfbc01461024657600080fd5b80632faeaacb146100d957806331b037a21461010f5780637557ca4114610149575b600080fd5b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020015b60405180910390f35b6101176102ff565b6040805193845273ffffffffffffffffffffffffffffffffffffffff9092166020840152151590820152606001610106565b6101516103d2565b604080519a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c0152971515978a01979097526060890195909552928616608088015290151560a087015260c086015290921660e084015290151561010083015261012082015261014001610106565b604080517f0000000000000000000000000000000000000000000000000000000000000000815260ff7f0000000000000000000000000000000000000000000000000000000000000000811660208301527f00000000000000000000000000000000000000000000000000000000000000001691810191909152606001610106565b6101176106bb565b61024e61078e565b604051908152602001610106565b61026461080d565b60405161010696959493929190612f6e565b61027e610b0a565b6040516101069190613023565b610293610c6f565b6040805173ffffffffffffffffffffffffffffffffffffffff909916895260208901979097529415159587019590955260608601929092526080850152151560a084015260c0830191909152151560e082015261010001610106565b61024e610da5565b610151610daf565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146103845761037f611070565b610387565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b6000806000806000806000806000806103e96111a4565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006104b77f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611416565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8216156105a6576105a17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611416565b6105a9565b60005b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff821615610698576106937f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611416565b61069b565b60005b995099509950995099509950995099509950995090919293949596979899565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146107405761073b6114d7565b610743565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b6000610798611602565b50905060008190036107df576040517fc82fc46500000000000000000000000000000000000000000000000000000000815261eb8d60048201526024015b60405180910390fd5b6107eb601b600a6131c3565b816107f46116a7
"devdoc": {
"kind": "dev",
"methods": {
"constructor": {
"params": {
"cLRS2Params_": "CLRS2ConstructorParams for wstETH <> CLRS Token2 conversion",
"infoName_": "Oracle identify helper name.",
"sequencerUptimeFeed_": "L2 sequencer uptime Chainlink feed",
"uniV3CheckCLRSParams_": "UniV3CheckCLRSOracle constructor params"
}
},
"getExchangeRate()": {
"details": "Deprecated. Use `getExchangeRateOperate()` and `getExchangeRateLiquidate()` instead. Only implemented for backwards compatibility."
}
},
"title": "CLRSOracle combined with a uniV3CheckCLRSOracle.",
"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"
},
"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": "constructs a CLRS2UniV3CheckCLRSOracleL2 with all inherited contracts"
},
"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"
},
"uniV3CheckOracleData()": {
"notice": "returns all oracle related data as utility for easy off-chain / block explorer use in a single view method"
},
"uniV3OracleData()": {
"notice": "returns all UniV3 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: 1. rate from Chainlink price feeds (or Redstone as fallback). 2. result from 1. combined with a uniV3CheckCLRSOracle to get from someToken <> someToken2 e.g. when going from wstETH to USDC: 1. wstETH -> stETH -> ETH Chainlink feed. 2. ETH -> USDC via UniV3 ETH <> USDC pool checked against ETH -> USDC Chainlink feed.",
"version": 1
},
"storageLayout": {
"storage": [
{
"astId": 8223,
"contract": "contracts/oracle/oraclesL2/cLRS2UniV3CheckCLRSOracleL2.sol:CLRS2UniV3CheckCLRSOracleL2",
"label": "_SEQUENCER_ORACLE",
"offset": 0,
"slot": "0",
"type": "t_contract(IChainlinkAggregatorV3)11850"
}
],
"types": {
"t_contract(IChainlinkAggregatorV3)11850": {
"encoding": "inplace",
"label": "contract IChainlinkAggregatorV3",
"numberOfBytes": "20"
}
}
}
}