0 txs
52k calls
constructor
No constructor.
functions
checkPrice
viewfunction checkPrice(uint256 _amountIn, address _fromToken, address _toToken, uint256 _minOut, uint256 _slippageInBps) view returns (bool)
getExpectedOut
viewfunction getExpectedOut(uint256 _amountIn, address _fromToken, address _toToken) view returns (uint256)
isRewardToken
viewfunction isRewardToken(address token) view returns (bool)
isTokenPairConfigured
viewfunction isTokenPairConfigured(address fromToken, address toToken) view returns (bool)
maxTimePriceValid
viewfunction maxTimePriceValid(address token) view returns (uint256 maxTimePriceValid)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
tokenOracleData
viewfunction tokenOracleData(address token, uint256) view returns (address chainlinkFeed, bool reverse, uint256 heartbeat)
tokenPairOracleData
viewfunction tokenPairOracleData(address fromToken, address toToken, uint256) view returns (address chainlinkFeed, bool reverse, uint256 heartbeat)
tokenPairOracleInformation
viewfunction tokenPairOracleInformation(address fromToken, address toToken) view returns (tuple[])
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
addTokenConfiguration
nonpayablefunction addTokenConfiguration(address fromToken, address toToken, tuple[] configurations)
initialize
nonpayablefunction initialize(address _owner)
removeTokenConfiguration
nonpayablefunction removeTokenConfiguration(address fromToken, address toToken)
renounceOwnership
nonpayablefunction renounceOwnership()
setMaxTimePriceValid
nonpayablefunction setMaxTimePriceValid(address fromToken, uint256 _maxTimePriceValid)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
MaxTimePriceValidSet
event MaxTimePriceValidSet(address indexed fromToken, uint256 maxTimePriceValid)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
TokenPairConfigurationRemoved
event TokenPairConfigurationRemoved(address indexed fromToken, address indexed toToken)
TokenPairConfigured
event TokenPairConfigured(address indexed fromToken, address indexed toToken, address indexed chainlinkFeed, bool reverse, uint256 heartbeat)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a08060405234602957306080526118d0908161002e8239608051818181610bce0152610c9e0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063403685e214610e535780634f1ef28614610c2257806352d1902d14610bbc57806359ff828b146108cf578063715018a6146108685780637f994bef1461071b5780638da5cb5b146106e7578063a187781a146106a2578063a5dcff461461062e578063aa8131191461053f578063ad3cb1cc146104e1578063b5fd73f8146104a7578063c4d66de814610357578063d043c9e81461031f578063ecd868fa14610291578063f1283af4146101c7578063f2fde38b1461019c5763fa506097146100df575f80fd5b34610198576040366003190112610198576100f8610eb6565b610100610e8a565b9061010961177e565b6001600160a01b03169061011e82151561157f565b6001600160a01b0316906101338215156115cb565b805f52600260205260405f20825f5260205261015460405f20541515610f37565b805f52600260205260405f20825f5260205261017260405f2061162a565b7f805395c34b25e548f3e4d8377d501fbc5ec15c87afdf75a638bcfcedda735d545f80a3005b5f80fd5b34610198576020366003190112610198576101c56101b8610eb6565b6101c061177e565b6116cf565b005b34610198576040366003190112610198576101e0610eb6565b602435906101ec61177e565b6001600160a01b03169061020182151561157f565b80156102415760207f34ef0753008c38d745b8c7fcdb32b36d64156ca886f7bcfc725ccee4fe29831691835f52600182528060405f2055604051908152a2005b60405162461bcd60e51b815260206004820152602260248201527f4d61782074696d652070726963652076616c69642063616e2774206265207a65604482015261726f60f01b6064820152608490fd5b34610198576060366003190112610198576102aa610eb6565b6102b2610e8a565b6001600160a01b039182165f9081526002602090815260408083209390941682529190915220805460443590811015610198576102ee91610f0a565b508054600190910154604080516001600160a01b038416815260a09390931c60ff1615156020840152820152606090f35b34610198576020366003190112610198576001600160a01b03610340610eb6565b165f526001602052602060405f2054604051908152f35b3461019857602036600319011261019857610370610eb6565b5f51602061187b5f395f51905f525460ff8160401c16159167ffffffffffffffff82168015908161049f575b6001149081610495575b15908161048c575b5061047d5767ffffffffffffffff1982166001175f51602061187b5f395f51905f52556103ec9183610451575b506103e46117b1565b6101c06117b1565b6103f46117b1565b6103fa57005b68ff0000000000000000195f51602061187b5f395f51905f5254165f51602061187b5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001175f51602061187b5f395f51905f5255836103db565b63f92ee8a960e01b5f5260045ffd5b905015846103ae565b303b1591506103a6565b84915061039c565b34610198576020366003190112610198576001600160a01b036104c8610eb6565b165f526001602052602060405f20541515604051908152f35b34610198575f3660031901126101985760408051906105008183610ecc565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b346101985760a036600319011261019857610558610e8a565b610560610ea0565b6001600160a01b038083165f90815260026020908152604080832093851683529290522054608435929190610596901515610f37565b61271083116105e9576105ab91600435610faf565b906127100361271081116105d5576105c861271091602093611617565b0460643511604051908152f35b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152601860248201527f536c6970706167652065786365656473206d6178696d756d00000000000000006044820152606490fd5b3461019857604036600319011261019857610647610eb6565b61064f610e8a565b6001600160a01b039182165f8181526002602090815260408083209590941682529390935291205415158061068c575b6020906040519015158152f35b505f526001602052602060405f2054151561067f565b34610198576040366003190112610198576106bb610eb6565b6001600160a01b03165f908152602081905260409020805460243590811015610198576102ee91610f0a565b34610198575f366003190112610198575f51602061183b5f395f51905f52546040516001600160a01b039091168152602090f35b3461019857604036600319011261019857610734610eb6565b61073c610e8a565b9060018060a01b03165f52600260205260405f209060018060a01b03165f5260205260405f2080549061076e82610f83565b9161077c6040519384610ecc565b808352602083019081925f5260205f20915f905b8282106107ff578486604051918291602083019060208452518091526040830191905f5b8181106107c2575050500390f35b825180516001600160a01b0316855260208181015115158187015260409182015191860191909152869550606090940193909201916001016107b4565b6040516060810181811067ffffffffffffffff8211176108545760019260029260209260405260ff8854868060a01b038116835260a01c16151583820152848801546040820152815201940191019092610790565b634e487b7160e01b5f52604160045260245ffd5b34610198575f3660031901126101985761088061177e565b5f51602061183b5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610198576060366003190112610198576108e8610eb6565b6108f0610e8a565b60443567ffffffffffffffff811161019857366023820112156101985780600401359267ffffffffffffffff841161019857602482019160243691606087020101116101985761093e61177e565b6001600160a01b03169161095383151561157f565b6001600160a01b03166109678115156115cb565b8315610b7757825f52600260205260405f20815f5260205261098b60405f2061162a565b5f5b84811061099657005b6001600160a01b036109b16109ac838887611673565b611683565b1615610b325760406109c4828786611673565b013515610aee57835f52600260205260405f20825f5260205260405f20906109ed818786611673565b9180546801000000000000000081101561085457610a1091600182018155610f0a565b610adb5760019283906040906001600160a01b03610a2d82611683565b85546001600160a01b0319169116178455610a4a60208201611697565b845460ff60a01b191690151560a01b60ff60a01b1617845501359101558583867f2ca5882fce81786cf909e0636f15e046931ff55450675e30aa67b81e22fd770660408881610abe88610ab76020610ab1838c610aab6109ac83838c611673565b98611673565b01611697565b988d611673565b0135825196151587526020870152878060a01b031694a40161098d565b634e487b7160e01b5f525f60045260245ffd5b606460405162461bcd60e51b815260206004820152602060248201527f486561727462656174206d7573742062652067726561746572207468616e20306044820152fd5b60405162461bcd60e51b815260206004820152601e60248201527f496e76616c696420636861696e6c696e6b2066656564206164647265737300006044820152606490fd5b60405162461bcd60e51b815260206004820152601a60248201527f456d70747920636f6e66696775726174696f6e732061727261790000000000006044820152606490fd5b34610198575f366003190112610198577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c135760206040515f51602061185b5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261019857610c36610eb6565b6024359067ffffffffffffffff8211610198573660238301121561019857816004013590610c6382610eee565b91610c716040519384610ecc565b8083526020830193366024838301011161019857815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e31575b50610c1357610cd661177e565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610dfd575b50610d185784634c9c8ce360e01b5f5260045260245ffd5b805f51602061185b5f395f51905f52869203610deb5750823b15610dd9575f51602061185b5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dc0575f80916101c5945190845af43d15610db8573d91610d9c83610eee565b92610daa6040519485610ecc565b83523d5f602085013e6117dc565b6060916117dc565b50505034610dca57005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e29575b81610e1960209383610ecc565b8101031261019857519086610d00565b3d9150610e0c565b5f51602061185b5f395f51905f52546001600160a01b03161415905084610cc9565b34610198576060366003190112610198576020610e82610e71610e8a565b610e79610ea0565b90600435610faf565b604051908152f35b602435906001600160a01b038216820361019857565b604435906001600160a01b038216820361019857565b600435906001600160a01b038216820361019857565b90601f8019910116810190811067ffffffffffffffff82111761085457604052565b67ffffffffffffffff811161085457601f01601f191660200190565b8054821015610f23575f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b15610f3e57565b60405162461bcd60e51b815260206004820152601960248201527f546f6b656e2070616972206e6f7420636f6e66696775726564000000000000006044820152606490fd5b67ffffffffffffffff81116108545760051b60200190565b8051821015610f235760209160051b010190565b919060018060a01b0316805f52600260205260405f2060018060a01b0383165f52602052610fe260405f20541515610f37565b805f52600260205260405f2060018060a01b0383165f5260205260405f209283549361100d85610f83565b9061101b6040519283610ecc565b858252601f1961102a87610f83565b0136602084013761103a86610f83565b956110486040519788610ecc565b808752601f1961105782610f83565b0136602089013761106781610f83565b916110756040519384610ecc565b818352601f1961108483610f83565b013660208501375f5b82811061151d575050505f9582519283156114d8578151840361147c578251840361141e57939291905f945b8386106111ca5750505050505060206004916040519283809263313ce56760e01b82525afa80156111a25760ff6020916004935f916111ad575b5060405163313ce56760e01b81529116939092839182906001600160a01b03165afa80156111a25760ff915f91611173575b5016908181111561114f5761114161114c9392611146926116a4565b611770565b906116b1565b90565b9080821061115c57505090565b61114161114c939261116d926116a4565b90611617565b611195915060203d60201161119b575b61118d8183610ecc565b810190611757565b5f611125565b503d611183565b6040513d5f823e3d90fd5b6111c49150833d851161119b5761118d8183610ecc565b5f6110f3565b90919293949760018060a01b036111e18a84610f9b565b51604051633fabe5a360e21b815291169160a082600481865afa80156111a2575f925f916113cb575b505f83131561137057801561132b576112238c88610f9b565b5181018091116105d55742116112d55760206004936040519485809263313ce56760e01b82525afa80156111a25760ff611268916001955f916112b7575b5016611770565b908b6112b25750875b61127b8c87610f9b565b51156112a057611294929161128f91611617565b6116b1565b980194939291906110b9565b6112ad9261128f91611617565b611294565b611271565b6112cf915060203d811161119b5761118d8183610ecc565b5f611261565b60405162461bcd60e51b815260206004820152602860248201527f50726963652066656564207570646174652074696d652065786365656473206860448201526719585c9d1899585d60c21b6064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f526f756e6420697320696e20696e636f6d706c657465642073746174650000006044820152606490fd5b60405162461bcd60e51b815260206004820152602d60248201527f436861696e6c696e6b2070726963652063616e6e6f74206265206c6f7765722060448201526c06f7220657175616c20746f203609c1b6064820152608490fd5b92505060a0823d8211611416575b816113e660a09383610ecc565b81010312610198576113f782611740565b50602082015161140e608060608501519401611740565b50915f61120a565b3d91506113d9565b60405162461bcd60e51b815260206004820152603060248201527f507269636520666565647320616e642068656172746265617473206d7573742060448201526f0d0c2ecca40e6c2daca40d8cadccee8d60831b6064820152608490fd5b60405162461bcd60e51b815260206004820152602e60248201527f507269636520666565647320616e64207265766572736573206d75737420686160448201526d0ecca40e6c2daca40d8cadccee8d60931b6064820152608490fd5b60405162461bcd60e51b815260206004820152601c60248201527f4e656564206174206c65617374206f6e652070726963652066656564000000006044820152606490fd5b8061152a60019284610f0a565b50828060a01b0390541661153e8288610f9b565b5260ff61154b8285610f0a565b505460a01c1661155b828c610f9b565b90151590528161156b8285610f0a565b5001546115788287610f9b565b520161108d565b1561158657565b60405162461bcd60e51b815260206004820152601a60248201527f496e76616c69642066726f6d20746f6b656e20616464726573730000000000006044820152606490fd5b156115d257565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c696420746f20746f6b656e206164647265737300000000000000006044820152606490fd5b818102929181159184041417156105d557565b8054905f815581611639575050565b6001600160ff1b03821682036105d5575f5260205f209060011b8101905b818110611662575050565b5f8082556001820155600201611657565b9190811015610f23576060020190565b356001600160a01b03811681036101985790565b3580151581036101985790565b919082039182116105d557565b81156116bb570490565b634e487b7160e01b5f52601260045260245ffd5b6001600160a01b0316801561172d575f51602061183b5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b519069ffffffffffffffffffff8216820361019857565b90816020910312610198575160ff811681036101985790565b604d81116105d557600a0a90565b5f51602061183b5f395f51905f52546001600160a01b0316330361179e57565b63118cdaa760e01b5f523360045260245ffd5b60ff5f51602061187b5f395f51905f525460401c16156117cd57565b631afcd79f60e31b5f5260045ffd5b9061180057508051156117f157805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580611831575b611811575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561180956fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212204f28ac7dbe689c73d318394130c37f55261dbc97b4dc9f34e1e6e66763625c1d64736f6c634300081c0033