0 txs
1 call
constructor
constructor(address swapRouterUniswapV3_, address swapRouterUniswapV2_, address factoryV3_, address factoryV2_, address admin_)
functions
ADMIN_DELEGATE_ROLE
viewfunction ADMIN_DELEGATE_ROLE() view returns (bytes32)
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
checkPoolExistsV2
viewfunction checkPoolExistsV2(address tokenA, address tokenB) view returns (bool)
checkPoolExistsV3
viewfunction checkPoolExistsV3(address tokenA, address tokenB, uint24 v3Fee) view returns (bool)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
factoryV2
viewfunction factoryV2() view returns (address)
factoryV3
viewfunction factoryV3() view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getRoleMembers
viewfunction getRoleMembers(bytes32 role) view returns (address[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isAdmin
viewfunction isAdmin(address _sender) view returns (bool)
isDelegateAdmin
viewfunction isDelegateAdmin(address _sender) view returns (bool)
isOperator
viewfunction isOperator(address _sender) view returns (bool)
isSigner
viewfunction isSigner(address _sender) view returns (bool)
OPERATOR
viewfunction OPERATOR() view returns (bytes32)
poolFee
viewfunction poolFee() view returns (uint24)
routerV2
viewfunction routerV2() view returns (address)
routerV3
viewfunction routerV3() view returns (address)
SIGNER
viewfunction SIGNER() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setFactoryV2
nonpayablefunction setFactoryV2(address _factoryV2)
setFactoryV3
nonpayablefunction setFactoryV3(address _factoryV3)
setPoolFee
nonpayablefunction setPoolFee(uint24 _poolFee)
setRouterV2
nonpayablefunction setRouterV2(address _routerV2)
setRouterV3
nonpayablefunction setRouterV3(address _routerV3)
swapToken
nonpayablefunction swapToken(address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOutMin, address receiver, bool isV3, bytes) returns (uint256 amountOut)
events
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Swap
event Swap(address indexed receiver)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
InvalidAdminRole
error InvalidAdminRole()
InvalidAtLeastOperatorRole
error InvalidAtLeastOperatorRole()
InvalidDelegateRole
error InvalidDelegateRole()
InvalidSignerRole
error InvalidSignerRole()
InvalidSwapAmount
error InvalidSwapAmount(uint256 amount)
NoLiquidityInV2OrV3
error NoLiquidityInV2OrV3()
SwapError
error SwapError()
creation bytecode
0x608060405234801561000f575f80fd5b50604051611a67380380611a6783398101604081905261002e91610318565b600280546001600160a01b03199081166001600160a01b038881169190911790925560038054821687841617905560048054909116858316179055600580549184166001600160b81b03199092169190911761017760a31b1790556100928161009c565b5050505050610379565b6100b35f80516020611a4783398151915282610182565b506100cb5f80516020611a2783398151915282610182565b506100e35f80516020611a0783398151915282610182565b506100fb5f805160206119e783398151915282610182565b506101135f80516020611a27833981519152806101b8565b6101375f80516020611a078339815191525f80516020611a278339815191526101b8565b61015b5f80516020611a478339815191525f80516020611a078339815191526101b8565b61017f5f805160206119e78339815191525f80516020611a078339815191526101b8565b50565b5f8061018e8484610202565b905080156101af575f8481526001602052604090206101ad90846102a9565b505b90505b92915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f828152602081815260408083206001600160a01b038516845290915281205460ff166102a2575f838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561025a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016101b2565b505f6101b2565b5f6101af836001600160a01b0384165f8181526001830160205260408120546102a257508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556101b2565b80516001600160a01b0381168114610313575f80fd5b919050565b5f805f805f60a0868803121561032c575f80fd5b610335866102fd565b9450610343602087016102fd565b9350610351604087016102fd565b925061035f606087016102fd565b915061036d608087016102fd565b90509295509295909350565b611661806103865f395ff3fe608060405234801561000f575f80fd5b50600436106101dc575f3560e01c806375b238fc11610109578063b08cc64c1161009e578063d9af17651161006e578063d9af176514610495578063ecb38751146104a8578063f2b3b467146104bb578063f93d5552146104ce575f80fd5b8063b08cc64c14610449578063c68bd4be1461045c578063ca15c8731461046f578063d547741f14610482575f80fd5b8063983d2737116100d9578063983d2737146103e8578063a16a95f31461040f578063a217fddf14610422578063a3246ad314610429575f80fd5b806375b238fc146103885780637df73e27146103af5780639010d07c146103c257806391d14854146103d5575f80fd5b80632f2ff15d1161017f57806359accd051161014f57806359accd051461033c57806368e0d4e11461034f5780636d70f7ae1461036257806373dd250c14610375575f80fd5b80632f2ff15d146102dc57806336568abe146102ef578063502f744614610302578063582abd1214610315575f80fd5b80630952ff54116101ba5780630952ff54146102475780631d5f45f51461027c578063248a9ca3146102a757806324d7806c146102c9575f80fd5b806301ffc9a7146101e057806305e4477d14610208578063089fe6aa1461021d575b5f80fd5b6101f36101ee3660046111c2565b6104e1565b60405190151581526020015b60405180910390f35b61021b6102163660046111fd565b61050b565b005b60055461023390600160a01b900462ffffff1681565b60405162ffffff90911681526020016101ff565b61026e7fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d781565b6040519081526020016101ff565b60045461028f906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b61026e6102b5366004611218565b5f9081526020819052604090206001015490565b6101f36102d73660046111fd565b610553565b61021b6102ea36600461122f565b61057e565b61021b6102fd36600461122f565b6105a8565b60035461028f906001600160a01b031681565b61026e7f6c8d7f768a6bb4aafe85e8a2f5a9680355239c7e14646ed62b044e39de15451281565b61021b61034a3660046111fd565b6105e0565b60055461028f906001600160a01b031681565b6101f36103703660046111fd565b610628565b61021b610383366004611274565b610653565b61026e7ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d881565b6101f36103bd3660046111fd565b61069d565b61028f6103d036600461128d565b6106c8565b6101f36103e336600461122f565b6106e6565b61026e7f46a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f62281565b6101f361041d3660046111fd565b61070e565b61026e5f81565b61043c610437366004611218565b610739565b6040516101ff91906112f0565b61021b6104573660046111fd565b610752565b6101f361046a366004611302565b61079a565b61026e61047d366004611218565b610823565b61021b61049036600461122f565b610839565b6101f36104a336600461132e565b61085d565b61021b6104b63660046111fd565b6108f4565b60025461028f906001600160a01b031681565b61026e6104dc3660046113c4565b61093c565b5f6001600160e01b03198216635a05180f60e01b14806105055750610505826109bf565b92915050565b6105143361070e565b6105315760405163dade674960e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f6105057ff23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8836106e6565b5f82815260208190526040902060010154610598816109f3565b6105a28383610a00565b50505050565b6001600160a01b03811633146105d15760405163334bd91960e11b815260040160405180910390fd5b6105db8282610a33565b505050565b6105e93361070e565b6106065760405163dade674960e01b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b5f6105057f46a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f622836106e6565b61065c3361070e565b6106795760405163dade674960e01b815260040160405180910390fd5b6005805462ffffff909216600160a01b0262ffffff60a01b19909216919091179055565b5f6105057f6c8d7f768a6bb4aafe85e8a2f5a9680355239c7e14646ed62b044e39de154512836106e6565b5f8281526001602052604081206106df9083610a5e565b9392505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b5f6105057fc171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7836106e6565b5f81815260016020526040902060609061050590610a69565b61075b3361070e565b6107785760405163dade674960e01b815260040160405180910390fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b60055460405163e6a4390560e01b81526001600160a01b03848116600483015283811660248301525f92839291169063e6a4390590604401602060405180830381865afa1580156107ed573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081191906114b3565b6001600160a01b031614159392505050565b5f81815260016020526040812061050590610a75565b5f82815260208190526040902060010154610853816109f3565b6105a28383610a33565b60048054604051630b4c774160e11b81526001600160a01b0386811693820193909352848316602482015262ffffff841660448201525f9283921690631698ee8290606401602060405180830381865afa1580156108bd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e191906114b3565b6001600160a01b03161415949350505050565b6108fd3361070e565b61091a5760405163dade674960e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f8215610957576109508888888888610a7e565b9050610981565b6109648888888888610b9c565b600181518110610976576109766114ce565b602002602001015190505b6040516001600160a01b038516907f39fded47e0083893073674c7057018a2eeea09c81036ddad3666cdf954351f43905f90a2979650505050505050565b5f6001600160e01b03198216637965db0b60e01b148061050557506301ffc9a760e01b6001600160e01b0319831614610505565b6109fd8133610cb9565b50565b5f80610a0c8484610cfb565b905080156106df575f848152600160205260409020610a2b9084610d8a565b509392505050565b5f80610a3f8484610d9e565b905080156106df575f848152600160205260409020610a2b9084610e07565b5f6106df8383610e1b565b60605f6106df83610e41565b5f610505825490565b5f610a8b86333087610e9a565b600254610aa39087906001600160a01b031686610f9f565b6040805160e0810182526001600160a01b03888116825287811660208301908152600554600160a01b900462ffffff90811684860190815287841660608601908152608086018b815260a087018b81525f60c0890190815260025499516304e45aaf60e01b815289518916600482015296518816602488015293519094166044860152905185166064850152516084840152905160a483015251821660c4820152919216906304e45aaf9060e4016020604051808303815f875af1158015610b6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9191906114e2565b979650505050505050565b6060610baa86333087610e9a565b600354610bc29087906001600160a01b031686610f9f565b6040805160028082526060820183525f9260208301908036833701905050905086815f81518110610bf557610bf56114ce565b60200260200101906001600160a01b031690816001600160a01b0316815250508581600181518110610c2957610c296114ce565b6001600160a01b039283166020918202929092010152600354166338ed173986868487610c5742603c61150d565b6040518663ffffffff1660e01b8152600401610c77959493929190611520565b5f604051808303815f875af1158015610c92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b91919081019061155b565b610cc382826106e6565b610cf75760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b5050565b5f610d0683836106e6565b610d83575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610d3b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610505565b505f610505565b5f6106df836001600160a01b03841661109a565b5f610da983836106e6565b15610d83575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a4506001610505565b5f6106df836001600160a01b0384166110df565b5f825f018281548110610e3057610e306114ce565b905f5260205f200154905092915050565b6060815f01805480602002602001604051908101604052809291908181526020018280548015610e8e57602002820191905f5260205f20905b815481526020019060010190808311610e7a575b50505050509050919050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291515f92839290881691610efd91906115fc565b5f604051808303815f865af19150503d805f8114610f36576040519150601f19603f3d011682016040523d82523d5f602084013e610f3b565b606091505b5091509150818015610f65575080511580610f65575080806020019051810190610f659190611612565b610f975760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b6044820152606401610cee565b505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f92839290871691610ffa91906115fc565b5f604051808303815f865af19150503d805f8114611033576040519150601f19603f3d011682016040523d82523d5f602084013e611038565b606091505b50915091508180156110625750805115806110625750808060200190518101906110629190611612565b6110935760405162461bcd60e51b8152602060048201526002602482015261534160f01b6044820152606401610cee565b5050505050565b5f818152600183016020526040812054610d8357508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610505565b5f81815260018301602052604081205480156111b9575f61110160018361162d565b85549091505f906111149060019061162d565b9050808214611173575f865f018281548110611132576111326114ce565b905f5260205f200154905080875f018481548110611152576111526114ce565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061118457611184611640565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610505565b5f915050610505565b5f602082840312156111d2575f80fd5b81356001600160e01b0319811681146106df575f80fd5b6001600160a01b03811681146109fd575f80fd5b5f6020828403121561120d575f80fd5b81356106df816111e9565b5f60208284031215611228575f80fd5b5035919050565b5f8060408385031215611240575f80fd5b823591506020830135611252816111e9565b809150509250929050565b803562ffffff8116811461126f575f80fd5b919050565b5f60208284031215611284575f80fd5b6106df8261125d565b5f806040838503121561129e575f80fd5b50508035926020909101359150565b5f8151808452602084019350602083015f5b828110156112e65781516001600160a01b03168652602095860195909101906001016112bf565b5093949350505050565b602081525f6106df60208301846112ad565b5f8060408385031215611313575f80fd5b823561131e816111e9565b91506020830135611252816111e9565b5f805f60608486031215611340575f80fd5b833561134b816111e9565b9250602084013561135b816111e9565b91506113696040850161125d565b90509250925092565b80151581146109fd575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156113bc576113bc61137f565b604052919050565b5f805f805f805f60e0888a0312156113da575f80fd5b87356113e5816111e9565b965060208801356113f5816111e9565b955060408801359450606088013593506080880135611413816111e9565b925060a088013561142381611372565b915060c088013567ffffffffffffffff81111561143e575f80fd5b8801601f81018a1361144e575f80fd5b803567ffffffffffffffff8111156114685761146861137f565b61147b601f8201601f1916602001611393565b8181528b602083850101111561148f575f80fd5b816020840160208301375f6020838301015280935050505092959891949750929550565b5f602082840312156114c3575f80fd5b81516106df816111e9565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156114f2575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610505576105056114f9565b85815284602082015260a060408201525f61153e60a08301866112ad565b6001600160a01b0394909416606083015250608001529392505050565b5f6020828403121561156b575f80fd5b815167ffffffffffffffff811115611581575f80fd5b8201601f81018413611591575f80fd5b805167ffffffffffffffff8111156115ab576115ab61137f565b8060051b6115bb60208201611393565b918252602081840181019290810190878411156115d6575f80fd5b6020850194505b83851015610b91578451808352602095860195909350909101906115dd565b5f82518060208501845e5f920191825250919050565b5f60208284031215611622575f80fd5b81516106df81611372565b81810381811115610505576105056114f9565b634e487b7160e01b5f52603160045260245ffdfea164736f6c634300081a000a6c8d7f768a6bb4aafe85e8a2f5a9680355239c7e14646ed62b044e39de154512c171260023d22a25a00a2789664c9334017843b831138c8ef03cc8897e5873d7f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d846a52cf33029de9f84853745a87af28464c80bf0346df1b32e205fc73319f62200000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc450000000000000000000000004a7b5da61326a6379179b40d00f57e5bbdc962c20000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000000c3c1c532f1e39edf36be9fe0be1410313e074bf0000000000000000000000000d3e7faacf6e3ead3121afc8f9c6f8f4245c1627