0 txs
1 call
constructor
No constructor.
functions
factory
viewfunction factory() view returns (address)
feeData
viewfunction feeData() view returns (tuple)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
quoter
viewfunction quoter() view returns (address)
router
viewfunction router() view returns (address)
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)
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_)
renounceOwnership
nonpayablefunction renounceOwnership()
swap
payablefunction swap(address tokenIn, address tokenOut, uint24 fee, address recipient, uint256 amountIn, uint256 minAmountOut) payable returns (uint256 amountOut)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateFeeData
nonpayablefunction updateFeeData(tuple data)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
FeeDataUpdated
event FeeDataUpdated((uint256 fee, address beneficiary) data)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
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)
BeneficiaryIsZero
error BeneficiaryIsZero()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FactoryIsZero
error FactoryIsZero()
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)
QuoterIsZero
error QuoterIsZero()
RouterIsZero
error RouterIsZero()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SendValueLtSwapFee
error SendValueLtSwapFee(uint256 fee, uint256 value)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346029573060805261193c908161002f8239608051818181610aa40152610b890152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80633d8be32a14610f28578063485cc95514610d385780634f1ef28614610b0e57806352d1902d14610a91578063715018a614610a2757806371a19c9c146109b857806378a96f7e1461099a5780637fa9a4fc146104365780638da5cb5b14610400578063ad3cb1cc146103ba578063c45a015514610391578063c6bbd5a714610368578063d8b477c2146102c4578063e753e60014610254578063f09c582914610214578063f131d8b51461013b578063f2fde38b146101105763f887ea40146100e257600080fd5b3461010b57600036600319011261010b576000546040516001600160a01b039091168152602090f35b600080fd5b3461010b57602036600319011261010b5761013961012c610fed565b61013461174f565b61154c565b005b3461010b57604036600319011261010b5760405161015881610f7f565b60043581526001600160a01b039060243590828216820361010b576020810191825261018261174f565b8051151580610209575b6101f757805160038190559151600480546001600160a01b0319169190941617909255604080519182526020928301516001600160a01b0316928201929092527f59bd8d73ac1fc264cc3adece879e40a20ec9489ae61c32dcf92a03e9a2ba0b6d91819081010390a1005b60405163c0f3343560e01b8152600490fd5b50828251161561018c565b3461010b57602036600319011261010b5761022d61131b565b5061012061024561023f600435611383565b506113e7565b610252604051809261113d565bf35b3461010b57600036600319011261010b576000602060405161027581610f7f565b82815201526102c060405161028981610f7f565b6003548082526004546001600160a01b03908116602093840190815260408051938452905190911692820192909252918291820190565b0390f35b3461010b576102ed60006103126102da36611019565b949060018060a01b0360015416926115c0565b83604051809681958294632f80bb1d60e01b84526040600485015260448401906111cb565b90602483015203925af1801561035c57602091600091610336575b50604051908152f35b61035391503d806000833e61034b8183610fb5565b8101906111f0565b5050508261032d565b6040513d6000823e3d90fd5b3461010b57600036600319011261010b576001546040516001600160a01b039091168152602090f35b3461010b57600036600319011261010b576002546040516001600160a01b039091168152602090f35b3461010b57600036600319011261010b576102c06040516103da81610f7f565b60058152640352e302e360dc1b60208201526040519182916020835260208301906111cb565b3461010b57600036600319011261010b576000805160206118e7833981519152546040516001600160a01b039091168152602090f35b60c036600319011261010b5761044a610fed565b610452611003565b6044359162ffffff8316830361010b576064356001600160a01b038116810361010b5760035480610943575b506040516323b872dd60e01b60208201523360248201523060448201526084356064820152606481528060a08101106001600160401b0360a0830111176108355760a081016040526104d9906001600160a01b0384166117e1565b60018060a01b0360005416604051602081019160008063095ea7b360e01b9485815283602486015260843560448601526044855261051685610f9a565b845190826001600160a01b038a165af161052e611853565b81610914575b5080610901575b156108b1575b50505060018060a01b0360005416926040516001600160601b0319808560601b16602083015262ffffff60e81b8760e81b1660348301528260601b166037820152602b81528060608101106001600160401b036060830111176108355760e08101906060810182106001600160401b038311176108355760009560209260405281606081015260018060a01b038516608083015260843560a083015260a43560c0830152604051809781809463b858183f60e01b825286600483015260c061061860608301516080602486015260a48501906111cb565b60808301516001600160a01b0316604485015260a08301516064850152910151608483015203925af193841561035c5760009461087c575b50600254604051630b4c774160e11b81526001600160a01b038581166004830152808416602483015262ffffff8816604483015290929160209184916064918391165afa91821561035c5760009261084b575b50604051916106b183610f63565b338352602083019360018060a01b03168452604083019060018060a01b03168152606083019460018060a01b03168552608083019160018060a01b0316825262ffffff60a084019716875260c08301608435815260e0840187815261010085019142835260055468010000000000000000811015610835578060016107399201600555611383565b95909561081f57865186546001600160a01b03199081166001600160a01b0392831617885598516001880180548b1691831691909117905594516002870180548a16918716919091179055975160038601805490981690851617909655955160048401805499516001600160b81b0319909a16919093161760a09890981b62ffffff60a01b1697909717905591516005830155915160068201559251600793909301929092556040516020927febbd22982c10262628fc01faf2d0f759f5635d2c6c67a2b967f5467ef52defc6916101209161081690829061113d565ba1604051908152f35b634e487b7160e01b600052600060045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61086e91925060203d602011610875575b6108668183610fb5565b8101906112fc565b90866106a3565b503d61085c565b9093506020813d6020116108a9575b8161089860209383610fb5565b8101031261010b5751926064610650565b3d915061088b565b6108f9926108ea91604051916020830152602482015260006044820152604481526108db81610f9a565b6001600160a01b0386166117e1565b6001600160a01b0384166117e1565b848080610541565b506001600160a01b0385163b151561053b565b8051801592508215610929575b505088610534565b61093c92506020809183010191016117c9565b8880610921565b80341061097c5750600080808060018060a01b036004541681903415610972575b3491f11561035c578461047e565b6108fc9150610964565b6044906040519063d713334760e01b82526004820152346024820152fd5b3461010b57600036600319011261010b576020600554604051908152f35b3461010b57604036600319011261010b576109d7602435600435611461565b6040516020916020820160208352815180915260206040840192019360005b828110610a035784840385f35b9091928261012082610a186001948a5161113d565b019601910194929190946109f6565b3461010b57600036600319011261010b57610a4061174f565b6000805160206118e783398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461010b57600036600319011261010b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610afc5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b60405163703e46dd60e11b8152600490fd5b604036600319011261010b57610b22610fed565b60249081356001600160401b03811161010b573660238201121561010b57806004013591610b4f83611122565b610b5c6040519182610fb5565b838152602093848201933687838301011161010b5781600092888893018737830101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610d0a575b50610afc57610bc261174f565b6040516352d1902d60e01b8152908316948082600481895afa918291600093610cda575b5050610c0457604051634c9c8ce360e01b8152600481018690528690fd5b8490867f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610cc55750843b15610caf575080546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2815115610c95575060006101399381925190845af4610c8f611853565b91611883565b9250505034610ca057005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101849052fd5b60405190632a87526960e21b82526004820152fd5b9080929350813d8311610d03575b610cf28183610fb5565b8101031261010b5751908780610be6565b503d610ce8565b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141587610bb5565b3461010b57604036600319011261010b57610d51610fed565b610d59611003565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009182549160ff8360401c1615926001600160401b03811680159081610f20575b6001149081610f16575b159081610f0d575b50610efb5767ffffffffffffffff198116600117855583610edc575b50610dd2611788565b610dda611788565b610de33361154c565b610deb611788565b6001600160a01b039081168015610eca57816001600160601b0360a01b9382856000541617600055168015610eb8576004916020918560015416176001556040519283809263c45a015560e01b82525afa90811561035c57600091610e99575b5016906002541617600255610e5c57005b68ff00000000000000001981541690557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b610eb2915060203d602011610875576108668183610fb5565b85610e4b565b604051630c0777ed60e01b8152600490fd5b604051630b6e7cd760e31b8152600490fd5b68ffffffffffffffffff19166801000000000000000117845584610dc9565b60405163f92ee8a960e01b8152600490fd5b90501586610dad565b303b159150610da5565b859150610d9b565b3461010b57610f3e60006103126102da36611019565b8360405180968195829463cdca175360e01b84526040600485015260448401906111cb565b61012081019081106001600160401b0382111761083557604052565b604081019081106001600160401b0382111761083557604052565b608081019081106001600160401b0382111761083557604052565b90601f801991011681019081106001600160401b0382111761083557604052565b6001600160401b0381116108355760051b60200190565b600435906001600160a01b038216820361010b57565b602435906001600160a01b038216820361010b57565b90606060031983011261010b576001600160401b0360043581811161010b578360238201121561010b5780600401359061105282610fd6565b906110606040519283610fb5565b82825260209260248484019160051b8301019187831161010b57602401905b828210611103575050509360243592831161010b578060238401121561010b5782600401356110ad81610fd6565b936110bb6040519586610fb5565b81855260248486019260051b82010192831161010b57602401905b8282106110e857505050509060443590565b813562ffffff8116810361010b5781529083019083016110d6565b81356001600160a01b038116810361010b57815290840190840161107f565b6001600160401b03811161083557601f01601f191660200190565b60018060a01b03808251168352806020830151166020840152806040830151166040840152806060830151166060840152608082015116608083015262ffffff60a08201511660a083015260c081015160c083015260e081015160e083015261010080910151910152565b60005b8381106111bb5750506000910152565b81810151838201526020016111ab565b906020916111e4815180928185528580860191016111a8565b601f01601f1916010190565b60808183031261010b5780519260209283830151936001600160401b039485811161010b57840182601f8201121561010b5780519061122e82610fd6565b9161123c6040519384610fb5565b808352838084019160051b8301019185831161010b578401905b8282106112dd5750505094604085015190811161010b5784019180601f8401121561010b57825161128681610fd6565b936112946040519586610fb5565b818552838086019260051b82010192831161010b578301905b8282106112c1575050505060609092015190565b815163ffffffff8116810361010b5781529083019083016112ad565b81516001600160a01b038116810361010b578152908401908401611256565b9081602091031261010b57516001600160a01b038116810361010b5790565b6040519061132882610f63565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b9190820180921161136d57565b634e487b7160e01b600052601160045260246000fd5b6005548110156113bd57600560005260031b7f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b634e487b7160e01b600052603260045260246000fd5b80518210156113bd5760209160051b010190565b906040516113f481610f63565b6101006007829462ffffff60018060a01b038083541686528060018401541660208701528060028401541660408701528060038401541660608701526004830154908116608087015260a01c1660a0850152600581015460c0850152600681015460e08501520154910152565b600554929183821015611525576114789082611360565b9283811061151d575b5080830392831161136d5761149583610fd6565b926114a36040519485610fb5565b8084526114b2601f1991610fd6565b0160005b8181106115065750508260005b845181101561150057806114e461023f6114df60019487611360565b611383565b6114ee82886113d3565b526114f981876113d3565b50016114c3565b50925050565b60209061151161131b565b828288010152016114b6565b925038611481565b50509050604051602081018181106001600160401b03821117610835576040526000815290565b6001600160a01b039081169081156115a7576000805160206118e783398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b9190916060926060938251928251926001946001850180861161136d578103611731575060009493929190855b8487106115fd5750505050505050565b9091929394959786890190818a1161171d5787918a918882036116a95761169b91604b91611641611639611631878c6113d3565b51968a6113d3565b51928a6113d3565b519460405195869360209361165e8151809287808a0191016111a8565b8501938d6001600160601b03199485911b169085015262ffffff60e81b9060e81b1660348401528b1b16603782015203602b810184520182610fb5565b985b019594939291906115ed565b9161171791506116bb603791886113d3565b51926116c78d886113d3565b51936040519485926020906116e4815180928480890191016111a8565b8401926001600160601b0319908d1b169083015262ffffff60e81b9060e81b166034820152036017810184520182610fb5565b9861169d565b634e487b7160e01b83526011600452602483fd5b6044908560405191632797ab9560e11b835260048301526024820152fd5b6000805160206118e7833981519152546001600160a01b0316330361177057565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156117b757565b604051631afcd79f60e31b8152600490fd5b9081602091031261010b5751801515810361010b5790565b60008061180a9260018060a01b03169360208151910182865af1611803611853565b9083611883565b8051908115159182611838575b50506118205750565b60249060405190635274afe760e01b82526004820152fd5b61184b92506020809183010191016117c9565b153880611817565b3d1561187e573d9061186482611122565b916118726040519384610fb5565b82523d6000602084013e565b606090565b906118aa575080511561189857805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806118dd575b6118bb575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156118b356fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a26469706673582212207865d72b703e55610851dcadd95c6765d74ae64b11baa7bed10d4766567de4c364736f6c63430008190033