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

735 lines
209 KiB
JSON
Raw Normal View History

{
"address": "0x38aE6fa3d6376D86D1EE591364CD4b45C99adE22",
"abi": [
{
"inputs": [
{
"components": [
{
"internalType": "contract IWstETH",
"name": "wstETH",
"type": "address"
},
{
"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 WstETHCLRS2UniV3CheckCLRSOracle.WstETHCLRS2ConstructorParams",
"name": "wstETHCLRS2Params_",
"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"
}
],
"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": "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": "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"
},
{
"inputs": [],
"name": "wstETHOracleData",
"outputs": [
{
"internalType": "uint256",
"name": "wstETHExchangeRate_",
"type": "uint256"
},
{
"internalType": "contract IWstETH",
"name": "wstETH_",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"transactionHash": "0x0bc1048a7b53f7ca112e0098380811918a96f1771522c68397dc1aada7abbc83",
"receipt": {
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
"contractAddress": null,
"transactionIndex": 19,
"gasUsed": "2765237",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x46ae6203a7d46b35642f1e80cc380fb36ba4ccd9ecb328bc3dfcdeb49ac318d7",
"transactionHash": "0x0bc1048a7b53f7ca112e0098380811918a96f1771522c68397dc1aada7abbc83",
"logs": [],
"blockNumber": 20023964,
"cumulativeGasUsed": "9366931",
"status": 1,
"byzantium": true
},
"args": [
{
"wstETH": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0",
"chainlinkParams": {
"hops": 1,
"feed1": {
"feed": "0x86392dC19c0b719886221c78AB11eb8Cf5c52812",
"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": 1,
"feed1": {
"feed": "0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46",
"invertRate": true,
"token0Decimals": 6
},
"feed2": {
"feed": "0x0000000000000000000000000000000000000000",
"invertRate": false,
"token0Decimals": 0
},
"feed3": {
"feed": "0x0000000000000000000000000000000000000000",
"invertRate": false,
"token0Decimals": 0
}
},
"uniV3Params": {
"pool": "0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640",
"secondsAgos": [
240,
60,
15,
1,
0
],
"tWAPMaxDeltaPercents": [
200,
50,
20
],
"invertRate": true
},
"redstoneOracle": {
"oracle": "0x0000000000000000000000000000000000000000",
"invertRate": false,
"token0Decimals": 0
},
"rateSource": 2,
"fallbackMainSource": 1,
"rateCheckMaxDeltaPercent": 300
}
],
"numDeployments": 1,
"solcInputHash": "1989963ad64c4704dbe1170530c79d20",
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"contract IWstETH\",\"name\":\"wstETH\",\"type\":\"address\"},{\"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 WstETHCLRS2UniV3CheckCLRSOracle.WstETHCLRS2ConstructorParams\",\"name\":\"wstETHCLRS2Params_\",\"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\",\
"bytecode": "0x61078060405261dead6103408190526103e0523480156200001f57600080fd5b506040516200458738038062004587833981016040819052620000429162000da4565b80806080015181602001518260400151818660200151876040015188606001518160006001600160a01b031686600001516001600160a01b031614620000895785620000b5565b60405180606001604052806103e0516001600160a01b0316815260200160001515815260200160018152505b82516001600160a01b031615620000cd5782620000f9565b6040518060600160405280610340516001600160a01b0316815260200160001515815260200160018152505b8a518d516001600160a01b0381166200012e5760405163c82fc46560e01b815261f61960048201526024015b60405180910390fd5b6001600160a01b03811660a052620001496012601b62000f74565b6200015690600a6200108d565b6080525080516001600160a01b0316620001885760405163c82fc46560e01b815261f231600482015260240162000125565b60608101516020810151905163ffffffff9182169116111580620001c857506060810151604081015163ffffffff16906001602002015163ffffffff1611155b80620001f057506060818101519081015163ffffffff16906002602002015163ffffffff1611155b806200021857506060810151608081015163ffffffff16906003602002015163ffffffff1611155b156200023c5760405163c82fc46560e01b815261f232600482015260240162000125565b6040810151516127101115806200025d575060408101518051602090910151115b806200027457506040818101516020810151910151115b15620002985760405163c82fc46560e01b815261f233600482015260240162000125565b606081810180515163ffffffff90811661016052815160209081015182166101805282516040015182166101a05282519093015181166101c052815160800151166101e05251908101519051620002f09190620010a2565b63ffffffff166102005260608101516040810151602090910151620003169190620010a2565b63ffffffff1661022052606081810151908101516040909101516200033c9190620010a2565b63ffffffff16610240526060818101516080810151910151620003609190620010a2565b63ffffffff16610260526040818101805151610100528051602090810151610120529051909101516101405281516001600160a01b031660c052810151151560e052620003b0601b600a6200108d565b61028052620003c2601b6002620010c9565b620003cf90600a6200108d565b6102a0525080516001600160a01b03161580620003ee57506040810151155b15620004125760405163c82fc46560e01b815261fa01600482015260240162000125565b80516001600160a01b039081166102c052602082015115156102e0526103405182518216911614620004635760408101516200045090601b62000f74565b6200045d90600a6200108d565b62000466565b60015b610300526103405181516001600160a01b03908116911614620004a85760408101516200049590601b620010e3565b620004a290600a6200108d565b620004ab565b60015b610320525080516001600160a01b03161580620004ca57506040810151155b15620004ee5760405163c82fc46560e01b815261fa01600482015260240162000125565b80516001600160a01b039081166103605260208201511515610380526103e051825182169116146200053f5760408101516200052c90601b62000f74565b6200053990600a6200108d565b62000542565b60015b6103a0526103e05181516001600160a01b03908116911614620005845760408101516200057190601b620010e3565b6200057e90600a6200108d565b62000587565b60015b6103c052508051600160ff9091161080620005a957506003816000015160ff16115b80620005d257506020810151516001600160a01b03161580620005d25750602081015160400151155b806200060d57506001816000015160ff161180156200060d57506040810151516001600160a01b031615806200060d57506040808201510151155b806200064957506002816000015160ff161180156200064957506060810151516001600160a01b03161580620006495750606081015160400151155b156200066d5760405163c82fc46560e01b815261ee49600482015260240162000125565b60208082018051516001600160a01b03908116610400526040808501805151831661042052606086018051519093166104405283518501511515610460525184015115156104805290519092015115156104a052510151620006d190601b62000f74565b620006de90600a6200108d565b6104c052602081015160400151620006f890601b620010e3565b6200070590600a6200108d565b6104e0528051600160ff909116116200072057600162000742565b60408082015101516200073590601b62000f74565b6200074290600a6200108d565b610500528051600160ff909116116200075d5760016200077f565b60408082015101516200077290601b620010e3565b6200077f90600a6200108d565b610520528051600260ff909116116200079a576001620007bd565b606081015160400151620007b090601b62000f74565b620007bd90600a6200108d565b610540528051600260ff90911611620007d8576001620007fb565b606081015160400151620007ee90601b620010e3565b620007fb90600a62
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638e7bfbc011610081578063e6aa216c1161005b578063e6aa216c1461029d578063f3190c891461023b578063f5be67a5146102a557600080fd5b80638e7bfbc01461023b578063a6ac913414610251578063dfaba9b51461026b57600080fd5b80637557ca41116100b25780637557ca411461013e5780637cebd7c5146101b157806388c352091461023357600080fd5b80632faeaacb146100ce57806331b037a214610104575b600080fd5b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020015b60405180910390f35b61010c6102ad565b6040805193845273ffffffffffffffffffffffffffffffffffffffff90921660208401521515908201526060016100fb565b610146610380565b604080519a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c0152971515978a01979097526060890195909552928616608088015290151560a087015260c086015290921660e0840152901515610100830152610120820152610140016100fb565b604080517f0000000000000000000000000000000000000000000000000000000000000000815260ff7f0000000000000000000000000000000000000000000000000000000000000000811660208301527f000000000000000000000000000000000000000000000000000000000000000016918101919091526060016100fb565b61010c610669565b61024361073c565b6040519081526020016100fb565b6102596107e7565b6040516100fb969594939291906129f3565b610273610ae4565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016100fb565b610243610b17565b610146610b21565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146103325761032d610de2565b610335565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b600080600080600080600080600080610397610f16565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006104657f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611188565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8216156105545761054f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611188565b610557565b60005b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff821615610646576106417f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611188565b610649565b60005b995099509950995099509950995099509950995090919293949596979899565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146106ee576106e9611249565b6106f1565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b6000610746611374565b509050600081900361078e576040517fc82fc46500000000000000000000000000000000000000000000000000000000815262010d8960048201526024015b60405180910390fd5b61079a601b600a612bd3565b816107a3611419565b6107ad9190612bdf565b6107b79190612c25565b90506107c5601b600a612bd3565b816107ce6114d5565b6107d89190612bdf565b6107e29190612c25565b905090565b6000806060808280600560
"devdoc": {
"kind": "dev",
"methods": {
"constructor": {
"params": {
"uniV3CheckCLRSParams_": "UniV3CheckCLRSOracle constructor params",
"wstETHCLRS2Params_": "WstETHCLRS2ConstructorParams for wstETH <> CLRS Token2 conversion"
}
},
"getExchangeRate()": {
"details": "Deprecated. Use `getExchangeRateOperate()` and `getExchangeRateLiquidate()` instead. Only implemented for backwards compatibility."
}
},
"title": "wstETHCLRSOracle 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 WstETHCLRS2UniV3CheckCLRSOracle 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"
},
"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"
},
"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"
},
"wstETHOracleData()": {
"notice": "returns all wWtETH 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. wstETH Oracle price in combination with rate from Chainlink price feeds (or Redstone as fallback). combining those two into one rate resulting in wstETH <> someToken 2. result from 1. combined with a uniV3CheckCLRSOracle to get from someToken <> someToken2 e.g. when going from wstETH to USDC: 1. wstETH -> stETH wstETH Oracle, stETH -> ETH Chainlink feed. 2. ETH -> USDC via UniV3 ETH <> USDC pool checked against ETH -> USDC Chainlink feed.",
"version": 1
},
"storageLayout": {
"storage": [],
"types": null
}
}