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

456 lines
94 KiB
JSON
Raw Normal View History

{
"address": "0x9eB64904D28b999Ba10c59575c309a76B67E2827",
"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": "cLRSParams_",
"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_ORACLE_MAIN_SOURCE",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "chainlinkOracleData",
"outputs": [
{
"internalType": "uint256",
"name": "chainlinkExchangeRate_",
"type": "uint256"
},
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "chainlinkFeed1_",
"type": "address"
},
{
"internalType": "bool",
"name": "chainlinkInvertRate1_",
"type": "bool"
},
{
"internalType": "uint256",
"name": "chainlinkExchangeRate1_",
"type": "uint256"
},
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "chainlinkFeed2_",
"type": "address"
},
{
"internalType": "bool",
"name": "chainlinkInvertRate2_",
"type": "bool"
},
{
"internalType": "uint256",
"name": "chainlinkExchangeRate2_",
"type": "uint256"
},
{
"internalType": "contract IChainlinkAggregatorV3",
"name": "chainlinkFeed3_",
"type": "address"
},
{
"internalType": "bool",
"name": "chainlinkInvertRate3_",
"type": "bool"
},
{
"internalType": "uint256",
"name": "chainlinkExchangeRate3_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExchangeRate",
"outputs": [
{
"internalType": "uint256",
"name": "exchangeRate_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExchangeRateLiquidate",
"outputs": [
{
"internalType": "uint256",
"name": "exchangeRate_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getExchangeRateOperate",
"outputs": [
{
"internalType": "uint256",
"name": "exchangeRate_",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "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": "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": "0xbea77f2090c56689b13663cf0c8fb0484aab134519002206e027c697a64e94f1",
"receipt": {
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
"contractAddress": null,
"transactionIndex": 1,
"gasUsed": "2251961",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x237f25f582dabc552f1bd3c8d4bfc66de1514d1e71094c33cd6aa2252dcd0a24",
"transactionHash": "0xbea77f2090c56689b13663cf0c8fb0484aab134519002206e027c697a64e94f1",
"logs": [],
"blockNumber": 229049676,
"cumulativeGasUsed": "2251961",
"status": 1,
"byzantium": true
},
"args": [
"ETH for 1 WSTETH",
{
"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
}
},
"0xFdB631F5EE196F0ed6FAa767959853A9F217697D"
],
"numDeployments": 1,
"solcInputHash": "ca9e5aa54012862807c9d9299b1ce928",
"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\":\"cLRSParams_\",\"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_ORACLE_MAIN_SOURCE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"chainlinkOracleData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate_\",\"type\":\"uint256\"},{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"chainlinkFeed1_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"chainlinkInvertRate1_\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate1_\",\"type\":\"uint256\"},{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"chainlinkFeed2_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"chainlinkInvertRate2_\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate2_\",\"type\":\"uint256\"},{\"internalType\":\"contract IChainlinkAggregatorV3\",\"name\":\"chainlinkFeed3_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"chainlinkInvertRate3_\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"chainlinkExchangeRate3_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExchangeRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"exchangeRate_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExchangeRateLiquidate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"exchangeRate_\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExchangeRateOperate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"exchangeRate_\",\"type\":\"uint2
"bytecode": "0x6102e060405261dead610120523480156200001957600080fd5b5060405162001f9738038062001f978339810160408190526200003c916200067e565b828260000151836020015184604001518282828160006001600160a01b031682600001516001600160a01b031614620000765781620000a2565b6040518060600160405280610120516001600160a01b0316815260200160001515815260200160018152505b600080546001600160a01b0319166001600160a01b038c161790558851899060201080620000cf57508051155b15620000f75760405163c82fc46560e01b815261ea6a60048201526024015b60405180910390fd5b6020015160805280516001600160a01b031615806200011857506040810151155b156200013c5760405163c82fc46560e01b815261fa016004820152602401620000ee565b80516001600160a01b0390811660a0526020820151151560c05261012051825182169116146200018b5760408101516200017890601b62000772565b6200018590600a6200088b565b6200018e565b60015b60e0526101205181516001600160a01b03908116911614620001cf576040810151620001bc90601b620008a0565b620001c990600a6200088b565b620001d2565b60015b61010052508051600160ff9091161080620001f457506003816000015160ff16115b806200021d57506020810151516001600160a01b031615806200021d5750602081015160400151155b806200025857506001816000015160ff161180156200025857506040810151516001600160a01b031615806200025857506040808201510151155b806200029457506002816000015160ff161180156200029457506060810151516001600160a01b03161580620002945750606081015160400151155b15620002b85760405163c82fc46560e01b815261ee496004820152602401620000ee565b60208082018051516001600160a01b039081166101405260408085018051518316610160526060860180515190931661018052835185015115156101a0525184015115156101c05290519092015115156101e0525101516200031c90601b62000772565b6200032990600a6200088b565b610200526020810151604001516200034390601b620008a0565b6200035090600a6200088b565b610220528051600160ff909116116200036b5760016200038d565b60408082015101516200038090601b62000772565b6200038d90600a6200088b565b610240528051600160ff90911611620003a8576001620003ca565b6040808201510151620003bd90601b620008a0565b620003ca90600a6200088b565b610260528051600260ff90911611620003e557600162000408565b606081015160400151620003fb90601b62000772565b6200040890600a6200088b565b610280528051600260ff909116116200042357600162000446565b6060810151604001516200043990601b620008a0565b6200044690600a6200088b565b6102a05250600160ff8416108062000461575060038360ff16115b15620004855760405163c82fc46560e01b815261fde96004820152602401620000ee565b505060ff166102c05250620008b695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715620004d757620004d76200049c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200050857620005086200049c565b604052919050565b805160ff811681146200052257600080fd5b919050565b6001600160a01b03811681146200053d57600080fd5b50565b6000606082840312156200055357600080fd5b6200055d620004b2565b905081516200056c8162000527565b8152602082015180151581146200058257600080fd5b806020830152506040820151604082015292915050565b60008183036101c0811215620005ae57600080fd5b620005b8620004b2565b9150620005c58362000510565b8252610140601f1982011215620005db57600080fd5b50604051608081016001600160401b03811182821017156200060157620006016200049c565b604052620006126020840162000510565b815262000623846040850162000540565b6020820152620006378460a0850162000540565b60408201526200064c84610100850162000540565b606082015260208201526200066683610160840162000540565b604082015292915050565b8051620005228162000527565b600080600061020084860312156200069557600080fd5b83516001600160401b0380821115620006ad57600080fd5b818601915086601f830112620006c257600080fd5b815181811115620006d757620006d76200049c565b60209150620006ef601f8201601f19168301620004dd565b81815288838386010111156200070457600080fd5b60005b828110156200072457848101840151828201850152830162000707565b5060008383830101528096505050620007408782880162000599565b93505050620007536101e0850162000671565b90509250925092565b634e487b7160e01b600052601160045260246000fd5b818103818111156200078857620007886200075c565b92915050565b600181815b80851115620007cf578160001904821115620007b357620007b36200075c565b80851615620007c157918102915b93841c939080029062000793565b509250929050565b600082620007e85750600162000788565b81620007f7575060006200078856
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063abd5f95d1161005b578063abd5f95d14610186578063dc4595121461019b578063e6aa216c146101ff578063f3190c891461017057600080fd5b80633437eac41461008d5780637557ca41146100c357806388c35209146101365780638e7bfbc014610170575b600080fd5b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020015b60405180910390f35b6100cb610207565b604080519a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c0152971515978a01979097526060890195909552928616608088015290151560a087015260c086015290921660e0840152901515610100830152610120820152610140016100ba565b61013e6104f0565b6040805193845273ffffffffffffffffffffffffffffffffffffffff90921660208401521515908201526060016100ba565b6101786105c3565b6040519081526020016100ba565b61018e6105da565b6040516100ba919061117e565b6101a361073f565b6040805173ffffffffffffffffffffffffffffffffffffffff909916895260208901979097529415159587019590955260608601929092526080850152151560a084015260c0830191909152151560e0820152610100016100ba565b610178610875565b60008060008060008060008060008061021e61087f565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006102ec7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610afb565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8216156103db576103d67f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610afb565b6103de565b60005b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8216156104cd576104c87f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610afb565b6104d0565b60005b995099509950995099509950995099509950995090919293949596979899565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461057557610570610bbc565b610578565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b60006105cd610cf0565b6105d5610d94565b905090565b606060005b60208110801561064557507f0000000000000000000000000000000000000000000000000000000000000000816020811061061c5761061c6111ea565b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b1561065c578061065481611248565b9150506105df565b60008167ffffffffffffffff81111561067757610677611280565b6040519080825280601f01601f1916602001820160405280156106a1576020820181803683370190505b50905060005b82811015610738577f000000000000000000000000000000000000000000000000000000000000000081602081106106e1576106e16111ea565b1a60f81b8282815181106106f7576106f76111ea565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508061073081611248565b9150506106a7565b5092915050565b6000806000806000806000806000610755610de1565b919850909650905086156107795761076d8187610f8e565b9196509450925061082f565b610a8c945060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156107ec573d6000803e3d6000fd5b505050506040
"devdoc": {
"kind": "dev",
"methods": {
"constructor": {
"params": {
"cLRSParams_": "CLRS Fallback Oracle data",
"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": "Chainlink / Redstone Oracle (with fallback) for Layer 2 (with sequencer outage detection)",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"FALLBACK_ORACLE_MAIN_SOURCE()": {
"notice": "which oracle to use as main source: - 1 = Chainlink ONLY (no fallback) - 2 = Chainlink with Redstone Fallback - 3 = Redstone with Chainlink Fallback"
},
"chainlinkOracleData()": {
"notice": "returns all Chainlink oracle related data as utility for easy off-chain use / block explorer in a single view method"
},
"constructor": {
"notice": "sets the main source, Chainlink Oracle and Redstone Oracle data."
},
"getExchangeRateLiquidate()": {
"notice": "Get the `exchangeRate_` between the underlying asset and the peg asset in 1e27 for liquidations"
},
"getExchangeRateOperate()": {
"notice": "Get the `exchangeRate_` between the underlying asset and the peg asset in 1e27 for operates"
},
"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"
},
"sequencerL2Data()": {
"notice": "returns all sequencer uptime feed related data"
}
},
"notice": "Gets the exchange rate between the underlying asset and the peg asset by using: the price from a Chainlink price feed or a Redstone Oracle with one of them being used as main source and the other one acting as a fallback if the main source fails for any reason. Reverts if fetched rate is 0.",
"version": 1
},
"storageLayout": {
"storage": [
{
"astId": 21741,
"contract": "contracts/oracle/oraclesL2/fallbackCLRSOracleL2.sol:FallbackCLRSOracleL2",
"label": "_SEQUENCER_ORACLE",
"offset": 0,
"slot": "0",
"type": "t_contract(IChainlinkAggregatorV3)25368"
}
],
"types": {
"t_contract(IChainlinkAggregatorV3)25368": {
"encoding": "inplace",
"label": "contract IChainlinkAggregatorV3",
"numberOfBytes": "20"
}
}
}
}