0 txs
266.4k calls
constructor
constructor(address addressProvider, address _pyth, address[] tokens, bytes32[] priceIds)
functions
ADDRESS_PROVIDER
viewfunction ADDRESS_PROVIDER() view returns (address)
backtrackTokenPrices
viewfunction backtrackTokenPrices(bytes32, address) view returns (uint256)
decimals
purefunction decimals() pure returns (uint256)
executor
viewfunction executor() view returns (address)
getHistoricalPrice
viewfunction getHistoricalPrice(uint64 publishTime, address token) view returns (uint256)
getPrice
viewfunction getPrice(address token) view returns (uint256)
getPriceSafely
viewfunction getPriceSafely(address token) view returns (uint256)
getPythPrice
viewfunction getPythPrice(address token) view returns (tuple)
getPythPriceNoOlderThan
viewfunction getPythPriceNoOlderThan(address token, uint256 _priceAge) view returns (tuple)
getPythPriceUnsafe
viewfunction getPythPriceUnsafe(address token) view returns (tuple)
PRICE_DECIMALS
viewfunction PRICE_DECIMALS() view returns (uint256)
priceAge
viewfunction priceAge() view returns (uint256)
priceIdTokens
viewfunction priceIdTokens(bytes32) view returns (address)
pyth
viewfunction pyth() view returns (address)
tokenPriceIds
viewfunction tokenPriceIds(address) view returns (bytes32)
removeHistoricalPrice
nonpayablefunction removeHistoricalPrice(uint64 _backtrackRound, address[] tokens)
setTokenPriceIds
nonpayablefunction setTokenPriceIds(address[] tokens, bytes32[] priceIds)
updateExecutorAddress
nonpayablefunction updateExecutorAddress(address newAddress)
updateHistoricalPrice
payablefunction updateHistoricalPrice(address[] tokens, bytes[] updateData, uint64 publishTime) payable
updatePrice
payablefunction updatePrice(address[] tokens, bytes[] updateData, uint64[] publishTimes) payable
updatePriceAge
nonpayablefunction updatePriceAge(uint256 age)
updatePythAddress
nonpayablefunction updatePythAddress(address _pyth)
events
PriceAgeUpdated
event PriceAgeUpdated(uint256 oldAge, uint256 newAge)
PythAddressUpdated
event PythAddressUpdated(address oldAddress, address newAddress)
TokenPriceIdUpdated
event TokenPriceIdUpdated(address token, bytes32 priceId)
UnneededPricePublishWarn
event UnneededPricePublishWarn()
UpdatedExecutorAddress
event UpdatedExecutorAddress(address sender, address oldAddress, address newAddress)
errors
No errors.
creation bytecode
0x604060c0815234620002cc576200213490813803806200001f81620002ec565b9384398201608083820312620002cc5782516001600160a01b03918282168203620002cc5760206200005381870162000328565b868601519094906001600160401b0390818111620002cc5788019784601f8a011215620002cc57885198620000926200008c8b6200033d565b620002ec565b9985808c838152019160051b83010191878311620002cc5786809101915b838310620002d157505050506060810151918211620002cc57019280601f85011215620002cc578351620000e86200008c826200033d565b94848087848152019260051b820101928311620002cc5784809101915b838310620002bb5750505050601e60a052600093600a855560805260018060a01b03199681600196168887541617865580518451036200027757859785985b620001a3575b8751611db390816200038182396080518181816101fd015281816104b2015281816107e0015281816109d501528181610eaf0152818161158c01528181611689015261178c015260a0518181816117d30152611cf60152f35b81518910156200027157620001b9898662000355565b5183620001c78b8562000355565b51168752600385528887205582620001e08a8462000355565b5116620001ee8a8762000355565b5187526004855288872090828254161790557f4e238d651cf72bd1ff4800414dc07a8a4ef83b6b46d015fb5abf7aefc824488c88846200022f8c8662000355565b51166200023d8c8962000355565b51825191825287820152a160001989146200025d57978601978662000144565b634e487b7160e01b86526011600452602486fd5b6200014a565b865162461bcd60e51b815260048101849052601a60248201527f696e636f6e73697374656e7420706172616d73206c656e6774680000000000006044820152606490fd5b825181529181019185910162000105565b600080fd5b8190620002de8462000328565b8152019101908690620000b0565b6040519190601f01601f191682016001600160401b038111838210176200031257604052565b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620002cc57565b6001600160401b038111620003125760051b60200190565b80518210156200036a5760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c9081631848effa1461177857508063313ce5671461043c57806332343cec1461165057806339653099146115575780633a5bb0991461151357806341976e09146114665780634bb341531461136f5780635f9c467b1461130a578063631a316c14610fa25780636deca46614610e70578063791a61b61461094b5780637f6728371461091257806387ad4478146107995780639b9e50c41461072c578063afe1020c146106f9578063c302122c146106dc578063c34c08e5146106b3578063cc527382146105f2578063cfb1d08714610441578063f1a640f81461043c578063f98d06f0146104135763fcfeed5c1461011357600080fd5b34610410576040366003190112610410576004356001600160401b0380821161040c573660238301121561040c57816004013591610150836118dd565b9261015e60405194856118bc565b8084526020918285016024809360051b830101913683116103e0578301905b8282106103e85750505080359283116103e457366023840112156103e4578260040135926101aa846118dd565b936101b860405195866118bc565b808552828486019160051b830101913683116103e05783859101915b8383106103d057505060405162435da560e01b81526001600160a01b03939250905083816004817f000000000000000000000000000000000000000000000000000000000000000087165afa908115610398578391859189916103a3575b508360405180948193637be53ca160e01b8352336004840152165afa80156103985761026591889161036b575b5061192b565b84518451036103285750845b8451811015610324578061028861031f9286611b07565b51836102948389611b07565b51168852600385526040882055826102ac8288611b07565b51166102b88287611b07565b5188526004855260408820906001600160601b0360a01b8254161790557f4e238d651cf72bd1ff4800414dc07a8a4ef83b6b46d015fb5abf7aefc824488c604084610303848a611b07565b511661030f8489611b07565b51825191825287820152a1611a28565b610271565b8580f35b82601a6064926040519262461bcd60e51b845260048401528201527f696e636f6e73697374656e7420706172616d73206c656e6774680000000000006044820152fd5b61038b9150853d8711610391575b61038381836118bc565b810190611913565b3861025f565b503d610379565b6040513d89823e3d90fd5b6103c39150823d84116103c9575b6103bb81836118bc565b8101906118f4565b38610232565b503d6103b1565b82358152918101918591016101d4565b8780fd5b8480fd5b81356001600160a01b038116810361040757815290840190840161017d565b600080fd5b8280fd5b80fd5b50346104105780600319360112610410576001546040516001600160a01b039091168152602090f35b6117bb565b50346104105760403660031901126104105761045b61188b565b6001600160401b03906024358281116105ee5761047c90369060040161185b565b600254909391926001600160a01b03916104999083163314611b63565b60405190632b47bb3d60e21b82526020938483600481877f0000000000000000000000000000000000000000000000000000000000000000165afa9283156105c657849386918a916105d1575b50600460405180968193636cf38c4960e01b8352165afa9081156105c65761051c61055c92610561958b916105a9575b50611b9f565b61054e6040519384924216888401906010926001600160401b0360c01b809260c01b16835260c01b1660088201520190565b03601f1981018352826118bc565b611c37565b93855b81811061056f578680f35b6105a49086885260058552604088208461059261058d84878b611a4d565b611a73565b16600052855287604060002055611a28565b610564565b6105c09150883d8a116103915761038381836118bc565b38610516565b6040513d8a823e3d90fd5b6105e89150823d84116103c9576103bb81836118bc565b386104e6565b8380fd5b50346104105760203660031901126104105761061d61060f6117f6565b610617611c5a565b50611c7f565b6001546040516331d98b3f60e01b81526004810192909252608090829060249082906001600160a01b03165afa9081156106a857829161066a575b604051806106668482611822565b0390f35b905060803d81116106a1575b61068081836118bc565b81019160808284031261041057506106669161069b91611bdf565b38610658565b503d610676565b6040513d84823e3d90fd5b50346104105780600319360112610410576002546040516001600160a01b039091168152602090f35b503461041057806003193601126104105760209054604051908152f35b503461041057602036600319011261041057602090600435815260048252604060018060a01b0391205416604051908152f35b50346104105760403660031901126104105761074961060f6117f6565b60015460405163052571af60e51b815260048101929092526024803590830152608090829060449082906001600160a01b03165afa9081156106a857829161066a57604051806106668482611822565b5034610410576040366003190112610410576107b361188b565b906107bc61180c565b604051632b47bb3d60e21b815260209391926001600160a01b0392909185816004817f000000000000000000000000000000000000000000000000000000000000000088165afa9081156108ea578491879185916108f5575b50600460405180948193636cf38c4960e01b8352165afa9081156108ea5761055c849361085161087c9461054e94604098916108d35750611b9f565b85516001600160c01b03194260c090811b82168c840190815293901b16600883015292839160100190565b8152600585522091166000528152604060002054801561089e57604051908152f35b60405162461bcd60e51b815260206004820152600d60248201526c696e76616c696420707269636560981b6044820152606490fd5b6105c091508b3d8d116103915761038381836118bc565b6040513d85823e3d90fd5b61090c9150823d84116103c9576103bb81836118bc565b38610815565b5034610410576020366003190112610410576020906040906001600160a01b0361093a6117f6565b168152600383522054604051908152f35b506060366003190112610410576004356001600160401b038111610e6c5761097790369060040161185b565b906024356001600160401b0381116105ee5761099790369060040161185b565b6001600160401b036044351660443503610407576109c060018060a01b03600254163314611b63565b604051632b47bb3d60e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e44576004916020918891610e4f575b50604051636cf38c4960e01b815292839182906001600160a01b03165afa8015610e4457610a47918791610e2b5750611b9f565b60015460405163d47eed4560e01b81526020600482018190526001600160a01b0390921694918180610a7d60248201878961195d565b0381885afa908115610398578791610df9575b503410610dc1579290918592610aa5866119f6565b95845b818110610d2a575050604051634716e9c560e01b81526080600482015295939450859384928392610af49291610ae291608486019161195d565b83810360031901602485015290611b2f565b604480356001600160401b03169083018190526064830152039134905af1829181610c01575b50610b595760405162461bcd60e51b81526020600482015260126024820152711c185c9cd9481c1c9a58d94819985a5b195960721b6044820152606490fd5b90806001600160401b034216915b8351811015610bfd5780610b7e610bf89286611b07565b5180518452600460205260018060a01b03604085205416610bda6020610bd260405161055c8161054e6044358d878401906010926001600160401b0360c01b809260c01b16835260c01b1660088201520190565b930151611caf565b91855260056020526040852090600052602052604060002055611a28565b610b67565b5080f35b9091503d908184823e610c1482826118bc565b60208183810103126105ee578051916001600160401b0383116103e457808201601f8484010112156103e4578282015190610c4e826118dd565b93610c5c60405195866118bc565b8285526020850190828501602061012086028388010101116103e05790602082860101915b6020610120860282880101018310610ca0575050505050509038610b1a565b610120838588010312610d26576040518060608101106001600160401b03606083011117610d10576101206020809483606084950160405287518152610cea898c01848a01611bdf565b83820152610cfd898c0160a08a01611bdf565b6040820152815201940193925050610c81565b634e487b7160e01b600052604160045260246000fd5b8880fd5b93959294509092610db590610d566001600160a01b03610d4e61058d848789611a4d565b161515611a87565b6001600160a01b03610d6c61058d838688611a4d565b168952600380602052610d8460408b20541515611ac8565b6001600160a01b03610d9a61058d848789611a4d565b168a526020526040892054610daf828a611b07565b52611a28565b90879492959391610aa8565b60405162461bcd60e51b815260206004820152601060248201526f696e73756666696369656e742066656560801b6044820152606490fd5b90506020813d602011610e23575b81610e14602093836118bc565b81010312610407575138610a90565b3d9150610e07565b6105c0915060203d6020116103915761038381836118bc565b6040513d88823e3d90fd5b610e669150823d84116103c9576103bb81836118bc565b38610a13565b5080fd5b503461041057602080600319360112610e6c576001600160a01b039060043582811691908290036105ee5760405162435da560e01b81529080826004817f000000000000000000000000000000000000000000000000000000000000000088165afa918215610f7a57849282918791610f85575b50602460405180978193637be53ca160e01b8352336004840152165afa928315610f7a57610f3c6040947f8c525fc2cf35fe844e121e8dca416898e83527db53785ddc04ea064b82df055d968891610f63575061192b565b85600154826001600160601b0360a01b82161760015585519481168552161790820152a180f35b61038b9150843d86116103915761038381836118bc565b6040513d87823e3d90fd5b610f9c9150823d84116103c9576103bb81836118bc565b38610ee4565b506060366003190112610410576004356001600160401b038111610e6c57610fce90369060040161185b565b6024356001600160401b0381116105ee57610fed90369060040161185b565b9290916044356001600160401b0381116113065761100f90369060040161185b565b909160018060a01b0360015416946040519463d47eed4560e01b86526020600487015260208680611044602482018c8761195d565b03818a5afa9586156112fb5789966112c7575b50853410610dc157611068836119f6565b9289918a5b898c84831061117a57505050505080611170575b611089578780f35b853b156103e05795939160206110d2899795936110c06040519a8b99631724ada560e31b8b52606060048c015260648b019161195d565b8881036003190160248a015290611b2f565b86810360031901604488015282815201919086905b808210611139575050509083809203925af180156106a85761110e575b8080808080808780f35b6001600160401b0381116111255760405238611104565b634e487b7160e01b82526041600452602482fd5b92919496509294508335906001600160401b038216809203610d2657602081600193829352019401920191869492889694926110e7565b5081511515611081565b6020906040906111996001600160a01b03610d4e61058d888b8b611a4d565b6001600160a01b036111af61058d878a8a611a4d565b16815260038084526111c5838320541515611ac8565b6001600160a01b036111db61058d888b8b611a4d565b168252808452828220546111ef878d611b07565b526001600160a01b0361120661058d888b8b611a4d565b16825283522054602460405180948193631311a76360e21b835260048301525afa9081156112bc578d9161127e575b5061124182898b611a4d565b35906001600160401b03821680920361127a576001600160401b031610611271575b61126c90611a28565b61106d565b60019350611263565b8d80fd5b90506020813d6020116112b4575b81611299602093836118bc565b810103126112b0576112aa90611b1b565b38611235565b8c80fd5b3d915061128c565b6040513d8f823e3d90fd5b9095506020813d6020116112f3575b816112e3602093836118bc565b81010312610d2657519438611057565b3d91506112d6565b6040513d8b823e3d90fd5b8580fd5b50346104105760203660031901126104105761132761060f6117f6565b6001546040516396834ad360e01b81526004810192909252608090829060249082906001600160a01b03165afa9081156106a857829161066a57604051806106668482611822565b50346104105760203660031901126104105761139161138c6117f6565b611c7f565b611399611c5a565b50600154825460405163052571af60e51b815260048101939093526024830152608090829060449082906001600160a01b03165afa90829082611428575b50506114155760405162461bcd60e51b815260206004820152601060248201526f19d95d081c1c9a58d94819985a5b195960821b6044820152606490fd5b611420602091611caf565b604051908152f35b90925060803d811161145f575b61143f81836118bc565b8101906080818303126105ee57611457929350611bdf565b9038806113d7565b503d611435565b50346104105760203660031901126104105761148361138c6117f6565b90608060018060a01b0360015416926024604051809581936396834ad360e01b835260048301525afa9182156115065781926114c5575b602061142084611caf565b90915060803d81116114ff575b6114dc81836118bc565b81019160808284031261041057506114f960209261142092611bdf565b916114ba565b503d6114d2565b50604051903d90823e3d90fd5b503461041057604036600319011261041057604060209161153261180c565b6004358252600584528282206001600160a01b03909116825283522054604051908152f35b503461041057602080600319360112610e6c5760405162435da560e01b81526001600160a01b039160048035929082908290817f000000000000000000000000000000000000000000000000000000000000000088165afa8015610f7a5782918691611633575b50602460405180968193637be53ca160e01b8352336004840152165afa918215611628576116166040937faddc57ffb204f0a63992db2b663f55d1a23d3d090f594395b6957d802b11fd38958791610f63575061192b565b8454918186558351928352820152a180f35b6040513d86823e3d90fd5b61164a9150823d84116103c9576103bb81836118bc565b386115be565b503461041057602080600319360112610e6c5761166b6117f6565b60405162435da560e01b81526001600160a01b0392919082816004817f000000000000000000000000000000000000000000000000000000000000000088165afa908115610f7a5784918491879161175b575b50602460405180978193637be53ca160e01b8352336004840152165afa928315610f7a576117166060947f89d318a4ea5827b09463b8b0c6d18d133d328f7ad98c2716abd5c09d3a86ee31968891611744575061192b565b81600254931691826001600160601b0360a01b8516176002556040519333855216908301526040820152a180f35b61038b9150833d85116103915761038381836118bc565b6117729150823d84116103c9576103bb81836118bc565b386116be565b905034610e6c5781600319360112610e6c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104075760003660031901126104075760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b600435906001600160a01b038216820361040757565b602435906001600160a01b038216820361040757565b9190916060806080830194805160070b84526001600160401b036020820151166020850152604081015160030b60408501520151910152565b9181601f84011215610407578235916001600160401b038311610407576020808501948460051b01011161040757565b600435906001600160401b038216820361040757565b608081019081106001600160401b03821117610d1057604052565b90601f801991011681019081106001600160401b03821117610d1057604052565b6001600160401b038111610d105760051b60200190565b9081602091031261040757516001600160a01b03811681036104075790565b90816020910312610407575180151581036104075790565b1561193257565b60405162461bcd60e51b81526020600482015260036024820152626f706160e81b6044820152606490fd5b8183526020600583901b84018101939192906000818401855b848310611987575050505050505090565b90919293949596601f19808883030184528835601e198436030181121561040757830186810190356001600160401b03811161040757803603821361040757838893601f83808796879660019a5286860137600085828601015201160101990193019301919594939290611976565b90611a00826118dd565b611a0d60405191826118bc565b8281528092611a1e601f19916118dd565b0190602036910137565b6000198114611a375760010190565b634e487b7160e01b600052601160045260246000fd5b9190811015611a5d5760051b0190565b634e487b7160e01b600052603260045260246000fd5b356001600160a01b03811681036104075790565b15611a8e57565b60405162461bcd60e51b81526020600482015260126024820152717a65726f20746f6b656e206164647265737360701b6044820152606490fd5b15611acf57565b60405162461bcd60e51b815260206004820152601060248201526f1d5b9adb9bdddb881c1c9a58d9481a5960821b6044820152606490fd5b8051821015611a5d5760209160051b010190565b51906001600160401b038216820361040757565b90815180825260208080930193019160005b828110611b4f575050505090565b835185529381019392810192600101611b41565b15611b6a57565b60405162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b6044820152606490fd5b15611ba657565b60405162461bcd60e51b81526020600482015260116024820152706f6e6c79206261636b747261636b696e6760781b6044820152606490fd5b919082608091031261040757604051611bf7816118a1565b809280518060070b8103610407578252611c1360208201611b1b565b602083015260408101518060030b8103610407576040830152606090810151910152565b602081519101519060208110611c4b575090565b6000199060200360031b1b1690565b60405190611c67826118a1565b60006060838281528260208201528260408201520152565b6001600160a01b0316611c93811515611a87565b6000526003602052604060002054611cac811515611ac8565b90565b600080825160070b131561089e5760408201518060030b90828212600014611d675750637fffffff198114611d535763ffffffff6001600160401b0391830316925b5116917f0000000000000000000000000000000000000000000000000000000000000000908103908111611d5357604d8111611d5357600a0a91828102928184041490151715611d3f575090565b634e487b7160e01b81526011600452602490fd5b634e487b7160e01b82526011600452602482fd5b6001600160401b03915063ffffffff1692611cf156fea2646970667358221220dfec5eeb71b7f2d21f0ca23371d9d49373e30bffb04fd1b4b6f9abc47c1cca7664736f6c63430008130033000000000000000000000000446dd43816a00d56849f549c032b4814008e183d000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925c000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000