mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
467 lines
157 KiB
JSON
467 lines
157 KiB
JSON
|
{
|
||
|
"address": "0x5b2860C6D6F888319C752aaCDaf8165C21095E3a",
|
||
|
"abi": [
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"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": "params_",
|
||
|
"type": "tuple"
|
||
|
}
|
||
|
],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "constructor"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "errorId_",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"name": "FluidOracleError",
|
||
|
"type": "error"
|
||
|
},
|
||
|
{
|
||
|
"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": "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": "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": "0xc1c435750ee3c252a0d6c04a65e90c7219e122f7027ddac9b759d6580945b396",
|
||
|
"receipt": {
|
||
|
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
|
||
|
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
|
||
|
"contractAddress": null,
|
||
|
"transactionIndex": 122,
|
||
|
"gasUsed": "2188863",
|
||
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||
|
"blockHash": "0xcad1b861d50bc0d3f78b164f3064e8e4a123841a262cbad39476b48fba2a85df",
|
||
|
"transactionHash": "0xc1c435750ee3c252a0d6c04a65e90c7219e122f7027ddac9b759d6580945b396",
|
||
|
"logs": [],
|
||
|
"blockNumber": 20018181,
|
||
|
"cumulativeGasUsed": "11899465",
|
||
|
"status": 1,
|
||
|
"byzantium": true
|
||
|
},
|
||
|
"args": [
|
||
|
{
|
||
|
"chainlinkParams": {
|
||
|
"hops": 1,
|
||
|
"feed1": {
|
||
|
"feed": "0x986b5e1e1755e3c2440e960477f25201b0a8bbd4",
|
||
|
"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\":[{\"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\":\"params_\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"errorId_\",\"type\":\"uint256\"}],\"name\":\"FluidOracleError\",\"type\":\"error\"},{\"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\":\"getExchangeRateLi
|
||
|
"bytecode": "0x61050060405261dead610300523480156200001957600080fd5b50604051620034f1380380620034f18339810160408190526200003c916200094a565b608081015160208201516040830151805182906001600160a01b03161562000065578162000091565b6040518060600160405280610300516001600160a01b0316815260200160001515815260200160018152505b855180516001600160a01b0316620000c55760405163c82fc46560e01b815261f23160048201526024015b60405180910390fd5b60608101516020810151905163ffffffff91821691161115806200010557506060810151604081015163ffffffff16906001602002015163ffffffff1611155b806200012d57506060818101519081015163ffffffff16906002602002015163ffffffff1611155b806200015557506060810151608081015163ffffffff16906003602002015163ffffffff1611155b15620001795760405163c82fc46560e01b815261f2326004820152602401620000bc565b6040810151516127101115806200019a575060408101518051602090910151115b80620001b157506040818101516020810151910151115b15620001d55760405163c82fc46560e01b815261f2336004820152602401620000bc565b606081810180515163ffffffff908116610120528151602090810151821661014052825160400151821661016052825190930151811661018052815160800151166101a052519081015190516200022d919062000a8c565b63ffffffff166101c0526060810151604081015160209091015162000253919062000a8c565b63ffffffff166101e0526060818101519081015160409091015162000279919062000a8c565b63ffffffff166102005260608181015160808101519101516200029d919062000a8c565b63ffffffff1661022052604081810180515160c052805160209081015160e0529051909101516101005281516001600160a01b0316608052810151151560a052620002eb601b600a62000bb2565b61024052620002fd601b600262000bc7565b6200030a90600a62000bb2565b610260525080516001600160a01b031615806200032957506040810151155b156200034d5760405163c82fc46560e01b815261fa016004820152602401620000bc565b80516001600160a01b0390811661028052602082015115156102a05261030051825182169116146200039e5760408101516200038b90601b62000be1565b6200039890600a62000bb2565b620003a1565b60015b6102c0526103005181516001600160a01b03908116911614620003e3576040810151620003d090601b62000bf7565b620003dd90600a62000bb2565b620003e6565b60015b6102e052508051600160ff90911610806200040857506003816000015160ff16115b806200043157506020810151516001600160a01b03161580620004315750602081015160400151155b806200046c57506001816000015160ff161180156200046c57506040810151516001600160a01b031615806200046c57506040808201510151155b80620004a857506002816000015160ff16118015620004a857506060810151516001600160a01b03161580620004a85750606081015160400151155b15620004cc5760405163c82fc46560e01b815261ee496004820152602401620000bc565b60208082018051516001600160a01b03908116610320526040808501805151831661034052606086018051519093166103605283518501511515610380525184015115156103a05290519092015115156103c0525101516200053090601b62000be1565b6200053d90600a62000bb2565b6103e0526020810151604001516200055790601b62000bf7565b6200056490600a62000bb2565b610400528051600160ff909116116200057f576001620005a1565b60408082015101516200059490601b62000be1565b620005a190600a62000bb2565b610420528051600160ff90911611620005bc576001620005de565b6040808201510151620005d190601b62000bf7565b620005de90600a62000bb2565b610440528051600260ff90911611620005f95760016200061c565b6060810151604001516200060f90601b62000be1565b6200061c90600a62000bb2565b610460528051600260ff90911611620006375760016200065a565b6060810151604001516200064d90601b62000bf7565b6200065a90600a62000bb2565b6104805250600160ff8416108062000675575060038360ff16115b15620006995760405163c82fc46560e01b815261fde96004820152602401620000bc565b505060ff9081166104a0526060820151600191161080620006c157506003816060015160ff16115b80620006d257506127108160a00151115b80620006f85750806080015160ff166001148015620006f85750806060015160ff166003145b156200071c5760405163c82fc46560e01b815261ea626004820152602401620000bc565b60a08101516104c0526060015160ff166104e05262000c0d565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171562000771576200077162000736565b60405290565b604051608081016001600160401b038111828210171562000771576200077162000736565b60405160c081016001600160401b038111828210171562000771576200077162000736565b6001600160a01b0381168114620007d757600080fd5b50565b80518015158114620007eb57600080fd5b919050565b600082601f83
|
||
|
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638e7bfbc01161005b5780638e7bfbc0146101b6578063a6ac9134146101cc578063e6aa216c146101b6578063f3190c89146101b657600080fd5b80637557ca41146100825780637cebd7c5146100fa57806388c352091461017c575b600080fd5b61008a6101e6565b604080519a8b5273ffffffffffffffffffffffffffffffffffffffff998a1660208c0152971515978a01979097526060890195909552928616608088015290151560a087015260c086015290921660e0840152901515610100830152610120820152610140015b60405180910390f35b604080517f0000000000000000000000000000000000000000000000000000000000000000815260ff7f0000000000000000000000000000000000000000000000000000000000000000811660208301527f000000000000000000000000000000000000000000000000000000000000000016918101919091526060016100f1565b6101846104cf565b6040805193845273ffffffffffffffffffffffffffffffffffffffff90921660208401521515908201526060016100f1565b6101be6105a2565b6040519081526020016100f1565b6101d46105b1565b6040516100f196959493929190611fda565b6000806000806000806000806000806101fd6108ae565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006102cb7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610b2a565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8216156103ba576103b57f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610b2a565b6103bd565b60005b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8216156104ac576104a77f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610b2a565b6104af565b60005b995099509950995099509950995099509950995090919293949596979899565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146105545761054f610beb565b610557565b60005b937f000000000000000000000000000000000000000000000000000000000000000093507f000000000000000000000000000000000000000000000000000000000000000092509050565b60006105ac610d1f565b905090565b600080606080828060056040519080825280602002602001820160405280156105e4578160200160208202803683370190505b5093507f00000000000000000000000000000000000000000000000000000000000000008460008151811061061b5761061b61209a565b602002602001019063ffffffff16908163ffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000846001815181106106695761066961209a565b602002602001019063ffffffff16908163ffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000846002815181106106b7576106b761209a565b602002602001019063ffffffff16908163ffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000846003815181106107055761070561209a565b602002602001019063ffffffff16908163ffffffff16815250507f0000000000000000000000000000000000000000000000000000000000000000846004815181106107535761075361209a565b63ffffffff92909216602092830291909101820152604080516003808252608082019092529182016060803683370190505092507f0000000000000000000000000000000000000000000000000000000000000000836000815181106107bb576107bb61209a565b6020026020010181815250507f0000000000000000000000000000000000000000000000000000000000000000836001815181106107fb
|
||
|
"devdoc": {
|
||
|
"details": "The process for getting the aggregate oracle price is: 1. Fetch the UniV3 TWAPS, the latest interval is used as the current price 2. Verify this price is within an acceptable DELTA from the Uniswap TWAPS e.g.: a. 240 to 60s b. 60 to 15s c. 15 to 1s (last block) d. 1 to 0s (current) 3. (unless UniV3 only mode): Verify this price is within an acceptable DELTA from the Chainlink / Redstone Oracle 4. If it passes all checks, return the price. Otherwise use fallbacks, usually to Chainlink. In extreme edge-cases revert.For UniV3 with check mode, if fetching the check price fails, the UniV3 rate is used directly.",
|
||
|
"kind": "dev",
|
||
|
"methods": {
|
||
|
"getExchangeRate()": {
|
||
|
"details": "Deprecated. Use `getExchangeRateOperate()` and `getExchangeRateLiquidate()` instead. Only implemented for backwards compatibility."
|
||
|
}
|
||
|
},
|
||
|
"stateVariables": {
|
||
|
"_RATE_CHECK_MAX_DELTA_PERCENT": {
|
||
|
"details": "Rate check oracle delta percent in 1e2 percent. If current uniswap price is out of this delta, current price fetching reverts."
|
||
|
},
|
||
|
"_RATE_SOURCE": {
|
||
|
"details": "which oracle to use as final rate source: - 1 = UniV3 ONLY (no check), - 2 = UniV3 with Chainlink / Redstone check - 3 = Chainlink / Redstone with UniV3 used as check."
|
||
|
}
|
||
|
},
|
||
|
"title": "UniswapV3 checked against Chainlink / Redstone Oracle. Either one reported as exchange rate.",
|
||
|
"version": 1
|
||
|
},
|
||
|
"userdoc": {
|
||
|
"kind": "user",
|
||
|
"methods": {
|
||
|
"chainlinkOracleData()": {
|
||
|
"notice": "returns all Chainlink oracle related data as utility for easy off-chain use / block explorer in a single view method"
|
||
|
},
|
||
|
"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"
|
||
|
},
|
||
|
"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: the price from a UniV3 pool (compared against 3 TWAPs) and (optionally) comparing it against a Chainlink or Redstone price (one of Chainlink or Redstone being the main source and the other one the fallback source). Alternatively it can also use Chainlink / Redstone as main price and use UniV3 as check price.",
|
||
|
"version": 1
|
||
|
},
|
||
|
"storageLayout": {
|
||
|
"storage": [],
|
||
|
"types": null
|
||
|
}
|
||
|
}
|