0 txs
5.2k calls
constructor
constructor()
functions
getOracleData
viewfunction getOracleData(address asset_) view returns (tuple oracleData_)
getPrice
viewfunction getPrice(address asset_, uint32 maxAge_, bool priceDiffCheck_) view returns (uint256 price_, uint256 timestamp_)
getPrice
viewfunction getPrice(address asset_) view returns (uint256 price_, uint256 timestamp_)
MODULE_KEY
viewfunction MODULE_KEY() view returns (bytes32)
owner
viewfunction owner() view returns (address)
pythOracleContract
viewfunction pythOracleContract() view returns (address)
initialize
nonpayablefunction initialize(address owner_, address pythContract_)
renounceOwnership
nonpayablefunction renounceOwnership()
setMaxDiffPercent
nonpayablefunction setMaxDiffPercent(address asset_, uint64 maxDiffPercent_)
setOracles
nonpayablefunction setOracles(address asset_, tuple onchainOracle_, tuple offchainOracle_)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updatePythPrice
payablefunction updatePythPrice(address sender_, bytes[] priceUpdateData_) payable
events
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetMaxDiffPercent
event SetMaxDiffPercent(uint256 maxDiffPercent)
SetOffChainOracle
event SetOffChainOracle((bytes32 priceId, uint32 maxAge, uint32 minConfidenceRatio) oracle)
SetOnChainOracle
event SetOnChainOracle((address oracleContract, uint32 maxAge) oracle)
errors
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OracleConfigInvalid
error OracleConfigInvalid()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PriceInvalid
error PriceInvalid(uint8 priceSource)
PriceMismatch
error PriceMismatch(uint256 diffPercent)
PriceStale
error PriceStale(uint8 priceSource)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
RefundFailed
error RefundFailed()
SafeCastOverflowedIntToUint
error SafeCastOverflowedIntToUint(int256 value)
ZeroAddress
error ZeroAddress(string variableName)
creation bytecode
0x6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61195d806100d96000396000f3fe6080604052600436106100c75760003560e01c8063529b128c116100745780638da5cb5b1161004e5780638da5cb5b1461033f578063e8e49d7d1461037c578063f2fde38b1461039c57600080fd5b8063529b128c146102d25780636216c271146102f2578063715018a61461032a57600080fd5b806341976e09116100a557806341976e091461025d578063485cc9551461029257806351131b2c146102b257600080fd5b806308f9c88e146100cc5780630cf42dbb146100e15780633d23b9ca1461022c575b600080fd5b6100df6100da3660046111d5565b6103bc565b005b3480156100ed57600080fd5b506101c96100fc36600461125f565b6040805160a0810182526000606080830182815260808401839052835283519081018452818152602080820183905281850183905283015291810191909152506001600160a01b03908116600090815260016020818152604092839020835160a0810185528154958616606080830191825263ffffffff600160a01b9098048816608084015290825285519081018652938201548452600282015480871685850152640100000000900490951683850152908401919091526003015467ffffffffffffffff169082015290565b60408051825180516001600160a01b0316825260209081015163ffffffff908116828401528185015180518486015291820151811660608401529083015116608082015291015167ffffffffffffffff1660a082015260c0015b60405180910390f35b34801561023857600080fd5b5061024f6b6f7261636c654d6f64756c6560a01b81565b604051908152602001610223565b34801561026957600080fd5b5061027d61027836600461125f565b610563565b60408051928352602083019190915201610223565b34801561029e57600080fd5b506100df6102ad366004611283565b610580565b3480156102be57600080fd5b506100df6102cd3660046112bc565b6106d5565b3480156102de57600080fd5b5061027d6102ed366004611329565b6106f1565b3480156102fe57600080fd5b50600054610312906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b34801561033657600080fd5b506100df61070b565b34801561034b57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610312565b34801561038857600080fd5b506100df61039736600461138f565b61071f565b3480156103a857600080fd5b506100df6103b736600461125f565b610735565b6103c4610778565b6000805460405163d47eed4560e01b81526001600160a01b039091169063d47eed45906103f790869086906004016113e6565b602060405180830381865afa158015610414573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104389190611489565b600054604051631df3cbc560e31b81529192506001600160a01b03169063ef9e5e2890839061046d90879087906004016113e6565b6000604051808303818588803b15801561048657600080fd5b505af115801561049a573d6000803e3d6000fd5b5050505050600081346104ad91906114b8565b11156105345760006001600160a01b0385166104c983346114b8565b604051600081818185875af1925050503d8060008114610505576040519150601f19603f3d011682016040523d82523d6000602084013e61050a565b606091505b509091505080151560000361053257604051633c31275160e21b815260040160405180910390fd5b505b5061055e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b505050565b6000806105768363ffffffff60006107e8565b9094909350915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105cb5750825b905060008267ffffffffffffffff1660011480156105e85750303b155b9050811580156105f6575080155b156106145760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561064857845468ff00000000000000001916680100000000000000001785555b6106518761093a565b61065961094b565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156106cc57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050565b6106dd61095b565b6106e783836109b6565b61055e8382610a70565b6000806106ff8585856107e8565b90969095509350505050565b61071361095b565b61071d6000610ba3565b565b61072761095b565b6107318282610c21565b5050565b61073d61095b565b6001600160a01b03811661076c57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61077581610ba3565b50565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f008054600119016107bc57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6000806000806107f787610cd1565b9150915060008060006108098a610f05565b91945092509050600081151581036108d45788156108b357600061083561083086896114cb565b611121565b905060008588106108465785610848565b875b61085a83670de0b6b3a76400006114f2565b610864919061151f565b6001600160a01b038e1660009081526001602052604090206003015490915067ffffffffffffffff168111156108b057604051632e66218160e01b815260048101829052602401610763565b50505b8483106108c957839750829650600190506108db565b8597508496506108db565b8597508496505b63ffffffff8a81161080156108fe5750426108fc63ffffffff8c1689611533565b105b1561092c578061090f576000610912565b60015b604051630c0ee27f60e31b81526004016107639190611546565b505050505050935093915050565b61094261113c565b6107758161118a565b61095361113c565b61071d611192565b3361098d7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461071d5760405163118cdaa760e01b8152336004820152602401610763565b60006109c5602083018361125f565b6001600160a01b031614806109f0575060006109e7604083016020840161156e565b63ffffffff1611155b15610a0e576040516372223ef760e11b815260040160405180910390fd5b6001600160a01b03821660009081526001602052604090208190610a32828261158b565b9050507faa77ceeb6e1e682e79af2306785832e766d903274a65787de8eee53d2ec735dc81604051610a6491906115fe565b60405180910390a15050565b80351580610a9457506000610a8b604083016020840161156e565b63ffffffff1611155b80610ab557506000610aac606083016040840161156e565b63ffffffff1611155b15610ad3576040516372223ef760e11b815260040160405180910390fd5b604051806060016040528082600001358152602001826020016020810190610afb919061156e565b63ffffffff168152602001610b16606084016040850161156e565b63ffffffff9081169091526001600160a01b038416600090815260016020818152604092839020855192810192909255840151600290910180549483015184166401000000000267ffffffffffffffff199095169190931617929092179055517fbd601a947a20a6a3384c4095cc3e13b7ae64b87bc2a3259343bde5d99139a34490610a64908390611639565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b67ffffffffffffffff81161580610c495750670de0b6b3a76400008167ffffffffffffffff16115b15610c67576040516372223ef760e11b815260040160405180910390fd5b6001600160a01b038216600090815260016020908152604091829020600301805467ffffffffffffffff191667ffffffffffffffff851690811790915591519182527fb1d85227fbe5819518d85ce8a2293a24e173776c5567460f5cff7e6ba9f6ec119101610a64565b6001600160a01b038082166000908152600160208181526040808420815160a0810183528154808816606080840191825263ffffffff600160a01b9093048316608085015290835284519081018552958301548652600283015480821687870152640100000000900416858401529283019390935260039092015467ffffffffffffffff169181019190915280515191928392908116610d9d5760405163eac0d38960e01b81526020600482015260066024820152656f7261636c6560d01b6044820152606401610763565b600080826001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610dde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e02919061169a565b50875160200151909850919450879350610e2492505063ffffffff1682611533565b421115610e47576000604051630c0ee27f60e31b81526004016107639190611546565b6000821315610ee057826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb291906116ec565b610ebd90600a6117f6565b610ecf83670de0b6b3a76400006114f2565b610ed9919061151f565b9550610efc565b6000604051630b1ba73960e21b81526004016107639190611546565b50505050915091565b6001600160a01b038082166000908152600160208181526040808420815160a0810183528154808816606080840191825263ffffffff600160a01b9093048316608085015290835284519081018552958301548652600283015480821687870152640100000000900416858401529283019390935260039092015467ffffffffffffffff169181019190915281549192839283929116610fd15760405163eac0d38960e01b81526020600482015260066024820152656f7261636c6560d01b6044820152606401610763565b600054602082810151805191015160405163052571af60e51b8152600481019290925263ffffffff1660248201526001600160a01b039091169063a4ae35e090604401608060405180830381865afa92505050801561104d575060408051601f3d908101601f1916820190925261104a91810190611822565b60015b61105a5760019150611119565b806060015193506000816000015160070b13801561108657506000816020015167ffffffffffffffff16115b801561109957506000816040015160030b125b15611112576110ba816040015160126110b291906118b5565b60030b61119a565b6110c590600a6118dc565b81516110d39060070b61119a565b6110dd91906114f2565b945081602001516040015160030b816020015182600001516110ff91906118e8565b60070b121561110d57600192505b611117565b600192505b505b509193909250565b6000808212156111345781600003611136565b815b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661071d57604051631afcd79f60e31b815260040160405180910390fd5b61073d61113c565b6107c261113c565b60008082121561113457604051635467221960e11b815260048101839052602401610763565b6001600160a01b038116811461077557600080fd5b6000806000604084860312156111ea57600080fd5b83356111f5816111c0565b9250602084013567ffffffffffffffff81111561121157600080fd5b8401601f8101861361122257600080fd5b803567ffffffffffffffff81111561123957600080fd5b8660208260051b840101111561124e57600080fd5b939660209190910195509293505050565b60006020828403121561127157600080fd5b813561127c816111c0565b9392505050565b6000806040838503121561129657600080fd5b82356112a1816111c0565b915060208301356112b1816111c0565b809150509250929050565b600080600083850360c08112156112d257600080fd5b84356112dd816111c0565b93506040601f19820112156112f157600080fd5b6020850192506060605f198201121561130957600080fd5b506060840190509250925092565b63ffffffff8116811461077557600080fd5b60008060006060848603121561133e57600080fd5b8335611349816111c0565b9250602084013561135981611317565b91506040840135801515811461136e57600080fd5b809150509250925092565b67ffffffffffffffff8116811461077557600080fd5b600080604083850312156113a257600080fd5b82356113ad816111c0565b915060208301356112b181611379565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020808252810182905260006040600584901b830181019083018583601e1936839003015b8782101561147c57868503603f19018452823581811261142a57600080fd5b890160208101903567ffffffffffffffff81111561144757600080fd5b80360382131561145657600080fd5b6114618782846113bd565b9650505060208301925060208401935060018201915061140b565b5092979650505050505050565b60006020828403121561149b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115611136576111366114a2565b81810360008312801583831316838312821617156114eb576114eb6114a2565b5092915050565b8082028115828204841417611136576111366114a2565b634e487b7160e01b600052601260045260246000fd5b60008261152e5761152e611509565b500490565b80820180821115611136576111366114a2565b602081016002831061156857634e487b7160e01b600052602160045260246000fd5b91905290565b60006020828403121561158057600080fd5b813561127c81611317565b8135611596816111c0565b6001600160a01b03811690508154816001600160a01b0319821617835560208401356115c181611317565b7fffffffffffffffff0000000000000000000000000000000000000000000000009190911690911760a09190911b63ffffffff60a01b1617905550565b60408101823561160d816111c0565b6001600160a01b03168252602083013561162681611317565b63ffffffff811660208401525092915050565b8135815260608101602083013561164f81611317565b63ffffffff166020830152604083013561166881611317565b63ffffffff811660408401525092915050565b805169ffffffffffffffffffff8116811461169557600080fd5b919050565b600080600080600060a086880312156116b257600080fd5b6116bb8661167b565b602087015160408801516060890151929750909550935091506116e06080870161167b565b90509295509295909350565b6000602082840312156116fe57600080fd5b815160ff8116811461127c57600080fd5b6001815b600184111561174a5780850481111561172e5761172e6114a2565b600184161561173c57908102905b60019390931c928002611713565b935093915050565b60008261176157506001611136565b8161176e57506000611136565b8160018114611784576002811461178e576117aa565b6001915050611136565b60ff84111561179f5761179f6114a2565b50506001821b611136565b5060208310610133831016604e8410600b84101617156117cd575081810a611136565b6117da600019848461170f565b80600019048211156117ee576117ee6114a2565b029392505050565b600061127c60ff841683611752565b805161169581611379565b8051600381900b811461169557600080fd5b6000608082840312801561183557600080fd5b600090506040516080810181811067ffffffffffffffff8211171561186857634e487b7160e01b83526041600452602483fd5b6040528351600781900b811461187c578283fd5b815261188a60208501611805565b602082015261189b60408501611810565b604082015260609384015193810193909352509092915050565b600381810b9083900b01637fffffff8113637fffffff1982121715611136576111366114a2565b600061127c8383611752565b60008160070b8360070b806118ff576118ff611509565b677fffffffffffffff1982146000198214161561191e5761191e6114a2565b9005939250505056fea2646970667358221220a5add11feb77998f26dbe483fc1e8d39ebf45ee385d506a728b99ef1c0388e1164736f6c634300081c0033