3 txs
7 calls
constructor
constructor(address _systemRegistry, uint256 _maxAge)
functions
accessController
viewfunction accessController() view returns (address)
ETH_IN_USD
viewfunction ETH_IN_USD() view returns (address)
getDescription
purefunction getDescription() pure returns (string)
getSystemRegistry
viewfunction getSystemRegistry() view returns (address)
isRegistered
viewfunction isRegistered(address token) view returns (bool)
maxAge
viewfunction maxAge() view returns (uint256)
prices
viewfunction prices(address) view returns (uint184 price, uint32 maxAge, uint32 timestamp, uint8 denom)
getPriceInEth
nonpayablefunction getPriceInEth(address token) returns (uint256 price)
registerTokens
nonpayablefunction registerTokens(address[] tokens, uint256[] maxAges)
setMaxAge
nonpayablefunction setMaxAge(uint256 age)
setPrices
nonpayablefunction setPrices(address[] tokens, uint256[] updatePrices, uint256[] queriedTimestamps, uint8[] denominations)
unregisterTokens
nonpayablefunction unregisterTokens(address[] tokens)
updateTokenMaxAges
nonpayablefunction updateTokenMaxAges(address[] tokens, uint256[] maxAges)
events
MaxAgeSet
event MaxAgeSet(uint256 maxAge)
PricesSet
event PricesSet(address[] tokens, uint256[] updatePrices, uint256[] queriedTimestamps, uint8[] denominations)
TokensRegistered
event TokensRegistered(address[] tokens, uint256[] maxAges)
TokensUnregistered
event TokensUnregistered(address[] tokens)
errors
AccessDenied
error AccessDenied()
AlreadyRegistered
error AlreadyRegistered(address token)
ArrayLengthMismatch
error ArrayLengthMismatch(uint256 length1, uint256 length2, string details)
InvalidAge
error InvalidAge(uint256 age)
InvalidDenomination
error InvalidDenomination(uint8 denomination)
InvalidParam
error InvalidParam(string paramName)
InvalidPrice
error InvalidPrice(address token, uint256 price)
InvalidTimestamp
error InvalidTimestamp(address token, uint256 timestamp)
InvalidToken
error InvalidToken(address token)
StalePriceDataError
error StalePriceDataError(uint256 timestamp, uint256 maxAge, uint256 current)
TimestampOlderThanCurrent
error TimestampOlderThanCurrent(address token, uint256 current, uint256 newest)
TokenNotRegistered
error TokenNotRegistered(address token)
UndefinedAddress
error UndefinedAddress()
ZeroAddress
error ZeroAddress(string paramName)
creation bytecode
0x60c060405234801562000010575f80fd5b5060405162001bf838038062001bf8833981016040819052620000339162000227565b816001600160a01b031663bc43cbaf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000070573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000096919062000256565b82620000d0816040518060400160405280600f81526020016e5f73797374656d526567697374727960881b8152506200011d60201b60201c565b6001600160a01b039081166080528116620000fe57604051630cbe126f60e11b815260040160405180910390fd5b6001600160a01b031660a052620001158162000156565b5050620002c9565b6001600160a01b03821662000152578060405163eac0d38960e01b81526004016200014991906200027b565b60405180910390fd5b5050565b6200018681604051806040016040528060068152602001656d617841676560d01b815250620001ea60201b60201c565b63ffffffff811115620001b0576040516334aba99560e01b81526004810182905260240162000149565b5f8190556040518181527f6777d8e4257e9f6a86d2f91b2b9fceaeb931d8b35249fbb63203c2dc0c0818709060200160405180910390a150565b815f03620001525780604051634389d5ab60e01b81526004016200014991906200027b565b6001600160a01b038116811462000224575f80fd5b50565b5f806040838503121562000239575f80fd5b825162000246816200020f565b6020939093015192949293505050565b5f6020828403121562000267575f80fd5b815162000274816200020f565b9392505050565b5f602080835283518060208501525f5b81811015620002a9578581018301518582016040015282016200028b565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a0516118e3620003155f395f818161016c0152818161057e015281816106470152818161070d015281816108fc0152610e6701525f8181610275015261041901526118e35ff3fe608060405234801561000f575f80fd5b50600436106100cb575f3560e01c8063bc43cbaf11610088578063d0265c2311610063578063d0265c231461024c578063e4d6301b1461025f578063f12baf5c14610273578063f39d1d8714610299575f80fd5b8063bc43cbaf14610167578063c3c5a547146101a6578063cfed246b146101ed575f80fd5b80631a092541146100cf57806334ff2eeb1461010357806335e3e084146101245780635ae28fc914610139578063687043c51461014c578063a51133da14610154575b5f80fd5b604080518082018252600981526818dd5cdd1bdb54d95d60ba1b602082015290516100fa919061125c565b60405180910390f35b61011661011136600461128c565b6102ac565b6040519081526020016100fa565b6101376101323660046113e0565b610553565b005b610137610147366004611440565b61061c565b6101165f5481565b610137610162366004611457565b6106e2565b61018e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100fa565b6101dd6101b436600461128c565b6001600160a01b03165f90815260016020526040902054600160b81b900463ffffffff16151590565b60405190151581526020016100fa565b61023c6101fb36600461128c565b60016020525f90815260409020546001600160b81b0381169063ffffffff600160b81b8204811691600160d81b81049091169060ff600160f81b9091041684565b6040516100fa94939291906114c5565b61013761025a3660046114ff565b6108be565b61018e6911551217d25397d554d160521b81565b7f000000000000000000000000000000000000000000000000000000000000000061018e565b6101376102a73660046113e0565b610e3c565b6001600160a01b0381165f908152600160208181526040808420815160808101835281546001600160b81b038116825263ffffffff600160b81b8204811695830195909552600160d81b810490941692810192909252849391929091606084019160ff600160f81b909104169081111561032857610328611491565b600181111561033957610339611491565b815250509050806020015163ffffffff165f036103795760405163ddef98d760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b428160200151826040015161038e9190611616565b63ffffffff1610156103cb5760408101516103af9063ffffffff164261163a565b6040516334aba99560e01b815260040161037091815260200190565b5f816060015160018111156103e2576103e2611491565b036103f95780516001600160b81b0316915061054d565b60018160600151600181111561041157610411611491565b0361054d575f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f3c274f76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610473573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104979190611653565b6040516334ff2eeb60e01b81526911551217d25397d554d160521b60048201526001600160a01b0391909116906334ff2eeb906024016020604051808303815f875af11580156104e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061050d919061166e565b8251909150610521906402540be400611685565b6001600160b81b031692508061053f84670de0b6b3a76400006116b7565b61054991906116ce565b9250505b50919050565b604051632474521560e21b81525f8051602061188e83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa1580156105cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ef91906116ed565b61060c57604051634ca8886760e01b815260040160405180910390fd5b61061783835f610efd565b505050565b604051632474521560e21b81525f8051602061188e83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015610694573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b891906116ed565b6106d557604051634ca8886760e01b815260040160405180910390fd5b6106de8261111e565b5050565b604051632474521560e21b81525f8051602061188e83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa15801561075a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e91906116ed565b61079b57604051634ca8886760e01b815260040160405180910390fd5b81516040805180820190915260038152623632b760e91b60208201526107c29082906111a8565b5f5b81811015610881575f8482815181106107df576107df61170c565b6020026020010151905061081081604051806040016040528060058152602001643a37b5b2b760d91b8152506111ca565b6001600160a01b0381165f90815260016020526040812054600160b81b900463ffffffff16900361085f5760405163961c9a4f60e01b81526001600160a01b0382166004820152602401610370565b6001600160a01b03165f908152600160208190526040822091909155016107c4565b507ff04b4c1ca86c36a1325983d88b4ea87a883ab7b24a488fc574918ff6852b9c55836040516108b19190611763565b60405180910390a1505050565b604051632474521560e21b81527f83decae20f8c60e8face90e2f68d7eb8522e50f266968cec423d6dae0346f47860048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015610949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096d91906116ed565b61098a57604051634ca8886760e01b815260040160405180910390fd5b84516040805180820190915260038152623632b760e91b60208201526109b19082906111a8565b6109e18186516040518060400160405280600c81526020016b746f6b656e2b70726963657360a01b8152506111f3565b610a158185516040518060400160405280601081526020016f746f6b656e2b74696d657374616d707360801b8152506111f3565b610a4c81845160405180604001604052806013815260200172746f6b656e2b64656e6f6d696e6174696f6e7360681b8152506111f3565b5f5b81811015610df6575f878281518110610a6957610a6961170c565b602002602001015190505f878381518110610a8657610a8661170c565b602002602001015190505f878481518110610aa357610aa361170c565b602002602001015190505f878581518110610ac057610ac061170c565b602002602001015190506001600160b81b038016831115610b065760405163a8a6fcc160e01b81526001600160a01b038516600482015260248101849052604401610370565b42821115610b39576040516340c41bb360e01b81526001600160a01b038516600482015260248101839052604401610370565b6001600160a01b0384165f908152600160208181526040808420815160808101835281546001600160b81b0381168252600160b81b810463ffffffff90811695830195909552600160d81b810490941692810192909252909290916060840191600160f81b90910460ff1690811115610bb457610bb4611491565b6001811115610bc557610bc5611491565b90525090505f826001811115610bdd57610bdd611491565b14158015610bfd57506001826001811115610bfa57610bfa611491565b14155b15610c1d5781604051630b07bcf560e41b81526004016103709190611775565b806020015163ffffffff165f03610c525760405163ddef98d760e01b81526001600160a01b0386166004820152602401610370565b806040015163ffffffff16831015610ca15760408082015190516352590c7d60e01b81526001600160a01b038716600482015263ffffffff909116602482015260448101849052606401610370565b42816020015163ffffffff1684610cb89190611783565b1015610cf2576020810151604051637757564760e11b81526004810185905263ffffffff9091166024820152426044820152606401610370565b6001600160b81b038416815263ffffffff8316604082015260608101826001811115610d2057610d20611491565b90816001811115610d3357610d33611491565b9052506001600160a01b0385165f9081526001602081815260409283902084518154928601519486015163ffffffff908116600160d81b0263ffffffff60d81b1991909616600160b81b026001600160d81b03199094166001600160b81b03909216919091179290921791821684178155606085015185949193909284926001600160f81b03166001600160d81b039091161790600160f81b908490811115610dde57610dde611491565b02179055509050505050505050806001019050610a4e565b507f214ccce24550b53d56610e3ddcf02b04e637937788a17959fdc3da2b0b71109d86868686604051610e2c94939291906117c5565b60405180910390a1505050505050565b604051632474521560e21b81525f8051602061188e83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d1485490604401602060405180830381865afa158015610eb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed891906116ed565b610ef557604051634ca8886760e01b815260040160405180910390fd5b610617838360015b82516040805180820190915260038152623632b760e91b6020820152610f249082906111a8565b610f528184516040518060400160405280600a815260200169746f6b656e2b6167657360b01b8152506111f3565b5f5b818110156110de575f858281518110610f6f57610f6f61170c565b60200260200101519050610fa081604051806040016040528060058152602001643a37b5b2b760d91b8152506111ca565b6001600160a01b0381165f90815260016020526040902054600160b81b900463ffffffff1684158015610fd257505f81115b15610ffb576040516345ed80e960e01b81526001600160a01b0383166004820152602401610370565b848015611006575080155b1561102f5760405163ddef98d760e01b81526001600160a01b0383166004820152602401610370565b5f8684815181106110425761104261170c565b6020026020010151905061107481604051806040016040528060068152602001656d617841676560d01b8152506111a8565b5f54811115611099576040516334aba99560e01b815260048101829052602401610370565b6001600160a01b039092165f908152600160208190526040909120805463ffffffff909416600160b81b0263ffffffff60b81b19909416939093179092555001610f54565b507fb387b5a5af07c9a6e69213f2d648a248a4e1ab12a2690f0d78636935be4ff30c848460405161111092919061184b565b60405180910390a150505050565b61114681604051806040016040528060068152602001656d617841676560d01b8152506111a8565b63ffffffff81111561116e576040516334aba99560e01b815260048101829052602401610370565b5f8190556040518181527f6777d8e4257e9f6a86d2f91b2b9fceaeb931d8b35249fbb63203c2dc0c0818709060200160405180910390a150565b815f036106de5780604051634389d5ab60e01b8152600401610370919061125c565b6001600160a01b0382166106de578060405163eac0d38960e01b8152600401610370919061125c565b818314610617578282826040516358da50eb60e01b81526004016103709392919061186f565b5f81518084525f5b8181101561123d57602081850181015186830182015201611221565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61126e6020830184611219565b9392505050565b6001600160a01b0381168114611289575f80fd5b50565b5f6020828403121561129c575f80fd5b813561126e81611275565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156112e4576112e46112a7565b604052919050565b5f67ffffffffffffffff821115611305576113056112a7565b5060051b60200190565b5f82601f83011261131e575f80fd5b8135602061133361132e836112ec565b6112bb565b8083825260208201915060208460051b870101935086841115611354575f80fd5b602086015b8481101561137957803561136c81611275565b8352918301918301611359565b509695505050505050565b5f82601f830112611393575f80fd5b813560206113a361132e836112ec565b8083825260208201915060208460051b8701019350868411156113c4575f80fd5b602086015b8481101561137957803583529183019183016113c9565b5f80604083850312156113f1575f80fd5b823567ffffffffffffffff80821115611408575f80fd5b6114148683870161130f565b93506020850135915080821115611429575f80fd5b5061143685828601611384565b9150509250929050565b5f60208284031215611450575f80fd5b5035919050565b5f60208284031215611467575f80fd5b813567ffffffffffffffff81111561147d575f80fd5b6114898482850161130f565b949350505050565b634e487b7160e01b5f52602160045260245ffd5b600281106114c157634e487b7160e01b5f52602160045260245ffd5b9052565b6001600160b81b038516815263ffffffff848116602083015283166040820152608081016114f660608301846114a5565b95945050505050565b5f805f8060808587031215611512575f80fd5b843567ffffffffffffffff80821115611529575f80fd5b6115358883890161130f565b955060209150818701358181111561154b575f80fd5b61155789828a01611384565b95505060408701358181111561156b575f80fd5b61157789828a01611384565b94505060608701358181111561158b575f80fd5b87019050601f8101881361159d575f80fd5b80356115ab61132e826112ec565b81815260059190911b8201830190838101908a8311156115c9575f80fd5b928401925b828410156115f3578335600281106115e4575f80fd5b825292840192908401906115ce565b979a9699509497505050505050565b634e487b7160e01b5f52601160045260245ffd5b63ffffffff81811683821601908082111561163357611633611602565b5092915050565b8181038181111561164d5761164d611602565b92915050565b5f60208284031215611663575f80fd5b815161126e81611275565b5f6020828403121561167e575f80fd5b5051919050565b6001600160b81b038281168282168181028316929181158285048214176116ae576116ae611602565b50505092915050565b808202811582820484141761164d5761164d611602565b5f826116e857634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156116fd575f80fd5b8151801515811461126e575f80fd5b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b838110156117585781516001600160a01b031687529582019590820190600101611733565b509495945050505050565b602081525f61126e6020830184611720565b6020810161164d82846114a5565b8082018082111561164d5761164d611602565b5f815180845260208085019450602084015f5b83811015611758578151875295820195908201906001016117a9565b608081525f6117d76080830187611720565b602083820360208501526117eb8288611796565b915083820360408501526117ff8287611796565b8481036060860152855180825260208088019450909101905f5b8181101561183c5761182c8386516114a5565b9383019391830191600101611819565b50909998505050505050505050565b604081525f61185d6040830185611720565b82810360208401526114f68185611796565b838152826020820152606060408201525f6114f6606083018461121956feced6982f480260bdd8ad5cb18ff2854f0306d78d904ad6cc107e8f3a0f526c18a26469706673582212200cb503a01df5603c5d638f87a7675f0c99b4369c8c983abfb4253bc25a1c98db64736f6c634300081800330000000000000000000000002218f90a98b0c070676f249ef44834686daa42850000000000000000000000000000000000000000000000000000000000015180