0 txs
137 calls
constructor
constructor((string description, address baseAssetAddress, uint8 baseAssetDecimals, address quoteAssetAddress, uint8 quoteAssetDecimals) baseParams, address _priceOracle, uint128 _priceStalenessThreshold, bool _validateRoundId, bool _validateLastUpdatedAt)
functions
assetScalingFactor
viewfunction assetScalingFactor() view returns (uint256)
baseAsset
viewfunction baseAsset() view returns (address)
convertAmount
viewfunction convertAmount(address fromAsset, uint256 fromAssetAmount, uint8 priceType, uint8 roundingMode) view returns (uint256 toAssetAmount)
decimals
viewfunction decimals() view returns (uint8)
description
viewfunction description() view returns (string)
latestPrice
viewfunction latestPrice(uint8, uint8 roundingMode) view returns (uint256 price)
latestPrices
viewfunction latestPrices(uint8 priceType1, uint8 roundingMode1, uint8 priceType2, uint8 roundingMode2) view returns (uint256, uint256, address, address)
matchAssets
viewfunction matchAssets(address asset1, address asset2) view returns (bool)
precision
viewfunction precision() view returns (uint256)
priceOracle
viewfunction priceOracle() view returns (address)
pricePrecisionScalar
viewfunction pricePrecisionScalar() view returns (uint128)
pricePrecisionScaleDown
viewfunction pricePrecisionScaleDown() view returns (bool)
priceStalenessThreshold
viewfunction priceStalenessThreshold() view returns (uint128)
quoteAsset
viewfunction quoteAsset() view returns (address)
validateLastUpdatedAt
viewfunction validateLastUpdatedAt() view returns (bool)
validateRoundId
viewfunction validateRoundId() view returns (bool)
events
ValidPriceRangeSet
event ValidPriceRangeSet(uint128 validFloor, uint128 validCeiling)
errors
AboveMaxValidRange
error AboveMaxValidRange(address oracle, uint256 price, uint128 ceiling)
BelowMinValidRange
error BelowMinValidRange(address oracle, uint256 price, uint128 floor)
InvalidOracleData
error InvalidOracleData(address oracle)
InvalidParam
error InvalidParam()
InvalidPrice
error InvalidPrice(address oracle, int256 price)
InvalidToken
error InvalidToken(address token)
PRBMath_MulDiv_Overflow
error PRBMath_MulDiv_Overflow(uint256 x, uint256 y, uint256 denominator)
StalePrice
error StalePrice(address oracle, uint256 lastUpdatedAt, int256 price)
UnknownPriceType
error UnknownPriceType(uint8 priceType)
creation bytecode
0x6101a060405234801562000011575f80fd5b50604051620018de380380620018de83398101604081905262000034916200028d565b845185905f9062000046908262000486565b5060208101516001600160a01b0390811660805260608201511660a05260408101516200007590601262000566565b60ff16816080015160ff161115620000a057604051633494a40d60e21b815260040160405180910390fd5b60808101516040820151620000b790601262000566565b620000c3919062000588565b620000d090600a62000695565b60c052506001600160a01b03841660e08190526001600160801b03841661014052620000fe90601262000128565b1515610100526001600160801b0316610120529015156101605215156101805250620006c8915050565b5f805f846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000168573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200018e9190620006ac565b90508360ff168160ff1611620001af5760ff81850316600a0a9250620001bf565b60ff84820316600a0a9250600191505b509250929050565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715620002005762000200620001c7565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620002315762000231620001c7565b604052919050565b80516001600160a01b038116811462000250575f80fd5b919050565b805160ff8116811462000250575f80fd5b80516001600160801b038116811462000250575f80fd5b8051801515811462000250575f80fd5b5f805f805f60a08688031215620002a2575f80fd5b85516001600160401b0380821115620002b9575f80fd5b9087019060a0828a031215620002cd575f80fd5b620002d7620001db565b825182811115620002e6575f80fd5b8301601f81018b13620002f7575f80fd5b8051838111156200030c576200030c620001c7565b6020935062000324601f8201601f1916850162000206565b8181528c8583850101111562000338575f80fd5b5f5b82811015620003575783810186015182820187015285016200033a565b505f8583830101528084525050506200037282840162000239565b82820152620003846040840162000255565b6040820152620003976060840162000239565b6060820152620003aa6080840162000255565b60808201529650620003be88820162000239565b95505050620003d06040870162000266565b9250620003e0606087016200027d565b9150620003f0608087016200027d565b90509295509295909350565b600181811c908216806200041157607f821691505b6020821081036200043057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200048157805f5260205f20601f840160051c810160208510156200045d5750805b601f840160051c820191505b818110156200047e575f815560010162000469565b50505b505050565b81516001600160401b03811115620004a257620004a2620001c7565b620004ba81620004b38454620003fc565b8462000436565b602080601f831160018114620004f0575f8415620004d85750858301515b5f19600386901b1c1916600185901b1785556200054a565b5f85815260208120601f198616915b828110156200052057888601518255948401946001909101908401620004ff565b50858210156200053e57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b60ff818116838216019081111562000582576200058262000552565b92915050565b60ff828116828216039081111562000582576200058262000552565b600181815b80851115620001bf57815f1904821115620005c857620005c862000552565b80851615620005d657918102915b93841c9390800290620005a9565b5f82620005f45750600162000582565b816200060257505f62000582565b81600181146200061b5760028114620006265762000646565b600191505062000582565b60ff8411156200063a576200063a62000552565b50506001821b62000582565b5060208310610133831016604e8410600b84101617156200066b575081810a62000582565b620006778383620005a4565b805f19048211156200068d576200068d62000552565b029392505050565b5f620006a560ff841683620005e4565b9392505050565b5f60208284031215620006bd575f80fd5b620006a58262000255565b60805160a05160c05160e05161010051610120516101405161016051610180516111406200079e5f395f818161010401526108fc01525f818161030e01526108d401525f818161028c015261089c01525f8181610344015261086401525f818161018c015261083c01525f8181610140015261080001525f818161025201528181610521015261061b01525f818161036b0152818161040301528181610550015281816106ec015261079801525f81816102e7015281816103e0015281816104bc01528181610696015261074201526111405ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80639502128011610093578063d13202e311610063578063d13202e314610309578063d3b5dc3b14610330578063dbb674801461033f578063fdf262b714610366575f80fd5b80639502128014610274578063bd11187014610287578063c6845a09146102cf578063cdf456e1146102e2575f80fd5b806369994511116100ce57806369994511146101c85780637284e416146102175780637349615f1461022c5780638fc5e88d1461024d575f80fd5b8063047c141d146100ff5780632630c12f1461013b5780632fd44e6f14610187578063313ce567146101ae575b5f80fd5b6101267f000000000000000000000000000000000000000000000000000000000000000081565b60405190151581526020015b60405180910390f35b6101627f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610132565b6101267f000000000000000000000000000000000000000000000000000000000000000081565b6101b6601281565b60405160ff9091168152602001610132565b6101db6101d6366004610e38565b61038d565b60408051948552602085019390935273ffffffffffffffffffffffffffffffffffffffff91821692840192909252166060820152608001610132565b61021f61042e565b6040516101329190610e91565b61023f61023a366004610f23565b6104b9565b604051908152602001610132565b61023f7f000000000000000000000000000000000000000000000000000000000000000081565b610126610282366004610f56565b610693565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6040516fffffffffffffffffffffffffffffffff9091168152602001610132565b61023f6102dd366004610f87565b6107ef565b6101627f000000000000000000000000000000000000000000000000000000000000000081565b6101267f000000000000000000000000000000000000000000000000000000000000000081565b61023f670de0b6b3a764000081565b6102ae7f000000000000000000000000000000000000000000000000000000000000000081565b6101627f000000000000000000000000000000000000000000000000000000000000000081565b5f805f805f61039c89896107ef565b90505f8660018111156103b1576103b1610fbe565b8960018111156103c3576103c3610fbe565b146103d7576103d288886107ef565b6103d9565b815b919a9199507f000000000000000000000000000000000000000000000000000000000000000098507f000000000000000000000000000000000000000000000000000000000000000097509095505050505050565b5f805461043a90610feb565b80601f016020809104026020016040519081016040528092919081815260200182805461046690610feb565b80156104b15780601f10610488576101008083540402835291602001916104b1565b820191905f5260205f20905b81548152906001019060200180831161049457829003601f168201915b505050505081565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361054e575f61051884846107ef565b905061054685827f000000000000000000000000000000000000000000000000000000000000000086610926565b91505061068b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610641575f6105cc8460018560018111156105ba576105ba610fbe565b146105c65760016107ef565b5f6107ef565b9050805f03610615576040517fdcd07d4f000000000000000000000000000000000000000000000000000000008152306004820152602481018290526044015b60405180910390fd5b610546857f00000000000000000000000000000000000000000000000000000000000000008386610926565b6040517f961c9a4f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015260240161060c565b949350505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561073a57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b806107e657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156107e657507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b90505b92915050565b5f6107e66040518060c001604052807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1681526020017f0000000000000000000000000000000000000000000000000000000000000000151581526020017f00000000000000000000000000000000000000000000000000000000000000006fffffffffffffffffffffffffffffffff1681526020017f00000000000000000000000000000000000000000000000000000000000000006fffffffffffffffffffffffffffffffff1681526020017f0000000000000000000000000000000000000000000000000000000000000000151581526020017f00000000000000000000000000000000000000000000000000000000000000001515815250836109d6565b5f610932858585610c94565b9050600182600181111561094857610948610fbe565b0361068b57828061095b5761095b61103c565b8486091561068b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156109935760010161068b565b6040517f63a0577800000000000000000000000000000000000000000000000000000000815260048101869052602481018590526044810184905260640161060c565b5f805f80855f015173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610a26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4a9190611082565b509350509250925085608001518015610a6d575069ffffffffffffffffffff8316155b15610abf5785516040517fe5bfb2d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161060c565b8560a0015115610bdb57805f03610b1d5785516040517fe5bfb2d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161060c565b42811115610b725785516040517fe5bfb2d800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161060c565b85606001518142031115610bdb5785516040517f93f2bf2100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018290526044810183905260640161060c565b5f821215610c375785516040517fdcd07d4f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911660048201526024810183905260440161060c565b8560200151610c67576040860151610c629083906fffffffffffffffffffffffffffffffff16610da1565b610c8a565b6040860151610c8a9083906fffffffffffffffffffffffffffffffff1687610dc0565b9695505050505050565b5f80807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff858709858702925082811083820303915050805f03610cea57838281610ce057610ce061103c565b0492505050610d9a565b838110610d34576040517f63a0577800000000000000000000000000000000000000000000000000000000815260048101879052602481018690526044810185905260640161060c565b5f848688098519600190810187169687900496828603819004959092119093035f82900391909104909201919091029190911760038402600290811880860282030280860282030280860282030280860282030280860282030280860290910302029150505b9392505050565b5f81600114610db957610db482846110ce565b6107e6565b5090919050565b5f82600103610dd0575082610d9a565b5f826001811115610de357610de3610fbe565b03610dff57828481610df757610df761103c565b049050610d9a565b8315610e2057826001850381610e1757610e1761103c565b0460010161068b565b5f949350505050565b60028110610e35575f80fd5b50565b5f805f8060808587031215610e4b575f80fd5b8435610e5681610e29565b93506020850135610e6681610e29565b92506040850135610e7681610e29565b91506060850135610e8681610e29565b939692955090935050565b5f602080835283518060208501525f5b81811015610ebd57858101830151858201604001528201610ea1565b505f6040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f1e575f80fd5b919050565b5f805f8060808587031215610f36575f80fd5b610f3f85610efb565b9350602085013592506040850135610e7681610e29565b5f8060408385031215610f67575f80fd5b610f7083610efb565b9150610f7e60208401610efb565b90509250929050565b5f8060408385031215610f98575f80fd5b8235610fa381610e29565b91506020830135610fb381610e29565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b600181811c90821680610fff57607f821691505b602082108103611036577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b805169ffffffffffffffffffff81168114610f1e575f80fd5b5f805f805f60a08688031215611096575f80fd5b61109f86611069565b94506020860151935060408601519250606086015191506110c260808701611069565b90509295509295909350565b80820281158282048414176107e9577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea2646970667358221220268200305eac2fcf020911b66483358332739e4781c1bb3a7af5e1b5a566046c64736f6c6343000816003300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000ec1d1b3b0443256cc3860e24a46f108e699484aa0000000000000000000000000000000000000000000000000000000000000f3c0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000009f8f72aa9304c8b593d555f12ef6589cc3a579a20000000000000000000000000000000000000000000000000000000000000012000000000000000000000000dc035d45d973e3ec169d2276ddab16f1e407384f000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000084d4b522f55534453000000000000000000000000000000000000000000000000