0 txs
12 calls
constructor
No constructor.
functions
factory
viewfunction factory() view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
quoter
viewfunction quoter() view returns (address)
router
viewfunction router() view returns (address)
swapHashes
viewfunction swapHashes(bytes32) view returns (bool)
swaps
viewfunction swaps(uint256 index) view returns (tuple)
swapsCount
viewfunction swapsCount() view returns (uint256)
swapsList
viewfunction swapsList(uint256 offset, uint256 limit) view returns (tuple[] output)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
verifySwapHashes
viewfunction verifySwapHashes(bytes32[] hashes) view returns (bool[] output)
getAmountsIn
nonpayablefunction getAmountsIn(address[] path, uint24[] fees, uint256 amountOut) returns (uint256 amountIn)
getAmountsOut
nonpayablefunction getAmountsOut(address[] path, uint24[] fees, uint256 amountIn) returns (uint256 amountOut)
initialize
nonpayablefunction initialize(address router_, address quoter_, address factory_)
renounceOwnership
nonpayablefunction renounceOwnership()
setSwaps
nonpayablefunction setSwaps(tuple[] swaps_)
swap
nonpayablefunction swap(address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 amountIn, uint256 minAmountOut) returns (uint256 amountOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateFactory
nonpayablefunction updateFactory(address factory_)
updateQuoter
nonpayablefunction updateQuoter(address quoter_)
updateRouter
nonpayablefunction updateRouter(address router_)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
FactoryUpdated
event FactoryUpdated(address indexed factory)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
QuoterUpdated
event QuoterUpdated(address indexed quoter)
RouterUpdated
event RouterUpdated(address indexed router)
Swapped
event Swapped((address sender, address recipient, address pool, address tokenIn, address tokenOut, uint24 fee, uint256 amountIn, uint256 amountOut, uint256 timestamp) data)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
PrepareSwapPathSwapPathAndFeeLengthIsInvalid
error PrepareSwapPathSwapPathAndFeeLengthIsInvalid(uint256 pathLength, uint256 feesLength)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SwapAmountIsNotPositive
error SwapAmountIsNotPositive()
SwapTokenInIsZero
error SwapTokenInIsZero()
SwapTokenOutIsZero
error SwapTokenOutIsZero()
UpdateFactoryFactoryIsZero
error UpdateFactoryFactoryIsZero()
UpdateQuoterQuoterIsZero
error UpdateQuoterQuoterIsZero()
UpdateRouterRouterIsZero
error UpdateRouterRouterIsZero()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a0806040523460295730608052611d04908161002f8239608051818181610b250152610c0a0152f35b600080fdfe6080604052600436101561001257600080fd5b60e060003560e01c9081633d8be32a14611119578163426172d6146110f55781634bc6531c14610ef4575080634f09a49614610db95780634f1ef28614610b8f57806352d1902d14610b12578063715018a614610aa857806371a19c9c14610a3957806378a96f7e14610a1b5780637fa9a4fc146105305780638da5cb5b146104fa578063ad3cb1cc14610488578063c0c53b8b14610324578063c45a0155146102fb578063c6bbd5a7146102d2578063c851cc32146102a9578063d8b477c214610205578063d9f165dc146101dc578063da876229146101ab578063f09c58291461016b578063f2fde38b146101405763f887ea401461011257600080fd5b3461013b57600036600319011261013b576000546040516001600160a01b039091168152602090f35b600080fd5b3461013b57602036600319011261013b5761016961015c6111c3565b610164611a0a565b611807565b005b3461013b57602036600319011261013b5761018461163a565b5061012061019c610196600435611518565b506116a2565b6101a9604051809261132f565bf35b3461013b57602036600319011261013b576004356000526004602052602060ff604060002054166040519015158152f35b3461013b57602036600319011261013b576101696101f86111c3565b610200611a0a565b611af6565b3461013b5761022e600061025361021b36611213565b949060018060a01b03600154169261187b565b83604051809681958294632f80bb1d60e01b84526040600485015260448401906113bd565b90602483015203925af1801561029d57602091600091610277575b50604051908152f35b61029491503d806000833e61028c818361118b565b8101906113e2565b5050508261026e565b6040513d6000823e3d90fd5b3461013b57602036600319011261013b576101696102c56111c3565b6102cd611a0a565b611a9d565b3461013b57600036600319011261013b576001546040516001600160a01b039091168152602090f35b3461013b57600036600319011261013b576002546040516001600160a01b039091168152602090f35b3461013b57606036600319011261013b5761033d6111c3565b6103456111d9565b604435916001600160a01b038316830361013b577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009283549160ff8360401c1615936001600160401b03841680159081610480575b6001149081610476575b15908161046d575b5061045b576103f4610200926103f9958760016001600160401b03198316178a5561043c575b506103db611c0a565b6103e3611c0a565b6103ec33611807565b6102cd611c0a565b611a43565b6103ff57005b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001178855886103d2565b60405163f92ee8a960e01b8152600490fd5b905015876103ac565b303b1591506103a4565b86915061039a565b3461013b57600036600319011261013b5760405160408101908082106001600160401b038311176104e4576104e09160405260058152640352e302e360dc1b60208201526040519182916020835260208301906113bd565b0390f35b634e487b7160e01b600052604160045260246000fd5b3461013b57600036600319011261013b57600080516020611caf833981519152546040516001600160a01b039091168152602090f35b3461013b5760c036600319011261013b576105496111c3565b6105516111d9565b62ffffff604435166044350361013b576064356001600160a01b038116810361013b576001600160a01b03831615610a09576001600160a01b038216156109f757608435156109e55760018060a01b0360005416906040516323b872dd60e01b60208201523360248201523060448201526084356064820152606481528060a08101106001600160401b0360a0830111176104e45760a08101604052610600906001600160a01b038616611b68565b604051602081019060008063095ea7b360e01b9384815286602485015260843560448501526044845261063284611170565b835190826001600160a01b038b165af161064a611bda565b816109b6575b50806109a3575b15610954575b50506040516001600160601b0319808660601b16602083015262ffffff60e81b60443560e81b1660348301528460601b166037820152602b81528060608101106001600160401b036060830111176104e45760e08101906060810182106001600160401b038311176104e45760009360209260405281606081015260018060a01b038416608083015260843560a083015260a43560c0830152604051809581809463b858183f60e01b825286600483015260c061072960608301516080602486015260a48501906113bd565b60808301516001600160a01b0316604485015260a08301516064850152910151608483015203925af191821561029d5760009261091f575b50600254604051630b4c774160e11b81526001600160a01b03868116600483015280861660248301526044803562ffffff169083015293949093909160209185916064918391165afa92831561029d576000936108d6575b50916020946101209261089d7febbd22982c10262628fc01faf2d0f759f5635d2c6c67a2b967f5467ef52defc695604051946107f486611154565b3386526001600160a01b038481168b880152908116604080880191909152858216606080890191909152918316608088015260443562ffffff1660a088015260843560c0880181905260e088018b9052426101008901819052915195831b6bffffffffffffffffffffffff19908116878e0190815297841b811660148901529390921b9092166028860152603c850152605c84015281607c84015b03601f19810183528261118b565b519020600052600485526040600020600160ff198254161790556108c081611552565b6108cd604051809261132f565ba1604051908152f35b909192506020813d602011610917575b816108f36020938361118b565b8101031261013b5751906001600160a01b038216820361013b5790919060206107b9565b3d91506108e6565b91506020823d60201161094c575b8161093a6020938361118b565b8101031261013b576064915191610761565b3d915061092d565b61098d61099c92604051906020820152856024820152600060448201526044815261097e81611170565b6001600160a01b038816611b68565b6001600160a01b038616611b68565b848061065d565b506001600160a01b0386163b1515610657565b80518015925082156109cb575b505087610650565b6109de9250602080918301019101611b50565b87806109c3565b604051630337504960e51b8152600490fd5b60405163a6e3c97360e01b8152600490fd5b604051636400e5f360e11b8152600490fd5b3461013b57600036600319011261013b576020600354604051908152f35b3461013b57604036600319011261013b57610a5860243560043561171c565b6040516020916020820160208352815180915260206040840192019360005b828110610a845784840385f35b9091928261012082610a996001948a5161132f565b01960191019492919094610a77565b3461013b57600036600319011261013b57610ac1611a0a565b600080516020611caf83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461013b57600036600319011261013b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610b7d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b604036600319011261013b57610ba36111c3565b60249081356001600160401b03811161013b573660238201121561013b57806004013591610bd083611314565b610bdd604051918261118b565b838152602093848201933687838301011161013b5781600092888893018737830101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610d8b575b50610b7d57610c43611a0a565b6040516352d1902d60e01b8152908316948082600481895afa918291600093610d5b575b5050610c8557604051634c9c8ce360e01b8152600481018690528690fd5b8490867f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610d465750843b15610d30575080546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115610d16575060006101699381925190845af4610d10611bda565b91611c4b565b9250505034610d2157005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101849052fd5b60405190632a87526960e21b82526004820152fd5b9080929350813d8311610d84575b610d73818361118b565b8101031261013b5751908780610c67565b503d610d69565b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141587610c36565b3461013b5760208060031936011261013b576004356001600160401b03811161013b573660238201121561013b578060040135610df5816111ac565b91610e03604051938461118b565b81835260248484019260051b8201019136831161013b576024859201905b838210610ee55782858051610e35816111ac565b90610e43604051928361118b565b808252610e4f816111ac565b8285019390601f190136853760005b828110610eab5750505090604051928392818401908285525180915260408401929160005b828110610e9257505050500390f35b8351151585528695509381019392810192600101610e83565b80610eb8600192846114ee565b516000526004875260ff60406000205416610ed4575b01610e5e565b81610edf82876114ee565b52610ece565b81358152908201908201610e21565b3461013b576020908160031936011261013b576004356001600160401b03811161013b573660238201121561013b57806004013590610f32826111ac565b92610f40604051948561118b565b8284528484019060246101208095028401019236841161013b57602401915b838310611057578686610f70611a0a565b60005b81518110156101695780610f92610f8c600193856114ee565b51611552565b818060a01b038085610fa484876114ee565b5101511690611038816060610fb986896114ee565b51015116916080610fca86896114ee565b510151169161088f60c0610fde878a6114ee565b510151610100610fee888b6114ee565b510151906040519586948c8601988993919092607c95936001600160601b03199283809260601b16875260601b16601486015260601b166028840152603c830152605c8201520190565b5190206000526004845260406000208260ff1982541617905501610f73565b848336031261013b5786859160405161106f81611154565b611078866111ef565b81526110858387016111ef565b83820152611095604087016111ef565b604082015260606110a78188016111ef565b9082015260806110b88188016111ef565b9082015260a06110c9818801611203565b9082015260c0808701359082015284860135858201526101008087013590820152815201920191610f5f565b3461013b57602036600319011261013b576101696111116111c3565b6103f4611a0a565b3461013b5761112f600061025361021b36611213565b8360405180968195829463cdca175360e01b84526040600485015260448401906113bd565b61012081019081106001600160401b038211176104e457604052565b608081019081106001600160401b038211176104e457604052565b90601f801991011681019081106001600160401b038211176104e457604052565b6001600160401b0381116104e45760051b60200190565b600435906001600160a01b038216820361013b57565b602435906001600160a01b038216820361013b57565b35906001600160a01b038216820361013b57565b359062ffffff8216820361013b57565b90606060031983011261013b576001600160401b0360043581811161013b578360238201121561013b5780600401359061124c826111ac565b9061125a604051928361118b565b82825260209260248484019160051b8301019187831161013b576024859101915b8383106112fc57505050509360243592831161013b578060238401121561013b5782600401356112aa816111ac565b936112b8604051958661118b565b81855260248486019260051b82010192831161013b57602401905b8282106112e557505050509060443590565b8380916112f184611203565b8152019101906112d3565b8190611307846111ef565b815201910190849061127b565b6001600160401b0381116104e457601f01601f191660200190565b60018060a01b03808251168352806020830151166020840152806040830151166040840152806060830151166060840152608082015116608083015262ffffff60a08201511660a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106113ad5750506000910152565b818101518382015260200161139d565b906020916113d68151809281855285808601910161139a565b601f01601f1916010190565b60808183031261013b5780519260209283830151936001600160401b039485811161013b57840182601f8201121561013b57805190611420826111ac565b9161142e604051938461118b565b808352838084019160051b8301019185831161013b578401905b8282106114cf5750505094604085015190811161013b5784019180601f8401121561013b578251611478816111ac565b93611486604051958661118b565b818552838086019260051b82010192831161013b578301905b8282106114b3575050505060609092015190565b815163ffffffff8116810361013b57815290830190830161149f565b81516001600160a01b038116810361013b578152908401908401611448565b80518210156115025760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b60035481101561150257600360005260031b7fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0190600090565b600354680100000000000000008110156104e4578060016115769201600355611518565b9190916116245761010060079160018060a01b03808251166001600160601b0360a01b908187541617865560018601826020850151168282541617905560028601826040850151168282541617905560038601908260608501511690825416179055600485019060808301511681549062ffffff60a01b60a085015160a01b169168ffffffffffffffffff60b81b161717905560c0810151600585015560e081015160068501550151910155565b634e487b7160e01b600052600060045260246000fd5b6040519061164782611154565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b9190820180921161168c57565b634e487b7160e01b600052601160045260246000fd5b906040516116af81611154565b6101006007829462ffffff60018060a01b038083541686528060018401541660208701528060028401541660408701528060038401541660608701526004830154908116608087015260a01c1660a0850152600581015460c0850152600681015460e08501520154910152565b6003549291838210156117e057611733908261167f565b928381106117d8575b5080830392831161168c57611750836111ac565b9261175e604051948561118b565b80845261176d601f19916111ac565b0160005b8181106117c15750508260005b84518110156117bb578061179f61019661179a6001948761167f565b611518565b6117a982886114ee565b526117b481876114ee565b500161177e565b50925050565b6020906117cc61163a565b82828801015201611771565b92503861173c565b50509050604051602081018181106001600160401b038211176104e4576040526000815290565b6001600160a01b0390811690811561186257600080516020611caf83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b9190916060926060938251928251926001946001850180861161168c5781036119ec575060009493929190855b8487106118b85750505050505050565b9091929394959786890190818a116119d85787918a918882036119645761195691604b916118fc6118f46118ec878c6114ee565b51968a6114ee565b51928a6114ee565b51946040519586936020936119198151809287808a01910161139a565b8501938d6001600160601b03199485911b169085015262ffffff60e81b9060e81b1660348401528b1b16603782015203602b81018452018261118b565b985b019594939291906118a8565b916119d29150611976603791886114ee565b51926119828d886114ee565b519360405194859260209061199f8151809284808901910161139a565b8401926001600160601b0319908d1b169083015262ffffff60e81b9060e81b16603482015203601781018452018261118b565b98611958565b634e487b7160e01b83526011600452602483fd5b6044908560405191632797ab9560e11b835260048301526024820152fd5b600080516020611caf833981519152546001600160a01b03163303611a2b57565b60405163118cdaa760e01b8152336004820152602490fd5b6001600160a01b03168015611a8b57600180546001600160a01b031916821790557f06526a30af2ff868c2686df12e95844d8ae300416bbec5d5ccc2d2f4afdb17a0600080a2565b604051634d1f790f60e11b8152600490fd5b6001600160a01b03168015611ae457600080546001600160a01b031916821781557f7aed1d3e8155a07ccf395e44ea3109a0e2d6c9b29bbbe9f142d9790596f4dc809080a2565b6040516327dee7f160e11b8152600490fd5b6001600160a01b03168015611b3e57600280546001600160a01b031916821790557f24cd1310c8883cbeaf5b805ab13586ce018b79c022827158ff3e8df14d344936600080a2565b60405163718524d760e11b8152600490fd5b9081602091031261013b5751801515810361013b5790565b600080611b919260018060a01b03169360208151910182865af1611b8a611bda565b9083611c4b565b8051908115159182611bbf575b5050611ba75750565b60249060405190635274afe760e01b82526004820152fd5b611bd29250602080918301019101611b50565b153880611b9e565b3d15611c05573d90611beb82611314565b91611bf9604051938461118b565b82523d6000602084013e565b606090565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c3957565b604051631afcd79f60e31b8152600490fd5b90611c725750805115611c6057805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611ca5575b611c83575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611c7b56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a26469706673582212203121d5348f4a20df2cb2edee51eedbd5de877ce60fefc28040192487cad94b0264736f6c63430008190033